From b020c90692263d1c432c35fc3d3be35de60f3f25 Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Wed, 3 Jul 2002 08:42:32 +0000 Subject: don't do uneeded copies (saves 2% of text size) --- libldetect.h | 2 +- lspcidrake.c | 46 +++++++++++++++++++++++----------------------- pciusb.c | 14 +++++++------- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/libldetect.h b/libldetect.h index 7020332..9b90f35 100644 --- a/libldetect.h +++ b/libldetect.h @@ -21,7 +21,7 @@ struct pciusb_entries { int nb; }; -extern void pciusb_free(struct pciusb_entries entries); +extern void pciusb_free(struct pciusb_entries *entries); /******************************************************************************/ diff --git a/lspcidrake.c b/lspcidrake.c index 55c69ba..753badd 100644 --- a/lspcidrake.c +++ b/lspcidrake.c @@ -11,30 +11,30 @@ void usage(void) { exit(0); } -void print_name(struct pciusb_entry e) { - printf("%-16s: ", e.module ? e.module : "unknown"); - if (e.text) - printf(e.text); +void print_name(struct pciusb_entry *e) { + printf("%-16s: ", e->module ? e->module : "unknown"); + if (e->text) + printf(e->text); else - printf("unknown (%04x/%04x/%04x/%04x)", e.vendor, e.device, e.subvendor, e.subdevice); + printf("unknown (%04x/%04x/%04x/%04x)", e->vendor, e->device, e->subvendor, e->subdevice); } -void print_id(struct pciusb_entry e) { - if (verboze && e.text) { - printf(" (vendor:%04x device:%04x", e.vendor, e.device); - if (e.subvendor != 0xffff || e.subdevice != 0xffff) - printf(" subv:%04x subd:%04x", e.subvendor, e.subdevice); +void print_id(struct pciusb_entry *e) { + if (verboze && e->text) { + printf(" (vendor:%04x device:%04x", e->vendor, e->device); + if (e->subvendor != 0xffff || e->subdevice != 0xffff) + printf(" subv:%04x subd:%04x", e->subvendor, e->subdevice); printf(")"); } } -void pci_printit(struct pciusb_entries entries) { +void pci_printit(struct pciusb_entries *entries) { int i; - for (i = 0; i < entries.nb; i++) { - struct pciusb_entry e = entries.entries[i]; + for (i = 0; i < entries->nb; i++) { + struct pciusb_entry *e = &entries->entries[i]; print_name(e); - if (e.class_) { - const char *class_ = pci_class2text(e.class_); + if (e->class_) { + const char *class_ = pci_class2text(e->class_); if (strcmp(class_, "NOT_DEFINED") != 0) printf(" [%s]", class_); } print_id(e); @@ -42,12 +42,12 @@ void pci_printit(struct pciusb_entries entries) { } } -void usb_printit(struct pciusb_entries entries) { +void usb_printit(struct pciusb_entries *entries) { int i; - for (i = 0; i < entries.nb; i++) { - struct pciusb_entry e = entries.entries[i]; + for (i = 0; i < entries->nb; i++) { + struct pciusb_entry *e = &entries->entries[i]; print_name(e); - if (e.class_) printf(" [%s]", usb_class2text(e.class_)); + if (e->class_) printf(" [%s]", usb_class2text(e->class_)); print_id(e); printf("\n"); } @@ -68,11 +68,11 @@ int main(int argc, char **argv) { } struct pciusb_entries entries = pci_probe(full_probe); - pci_printit(entries); - pciusb_free(entries); + pci_printit(&entries); + pciusb_free(&entries); entries = usb_probe(); - usb_printit(entries); - pciusb_free(entries); + usb_printit(&entries); + pciusb_free(&entries); exit(0); } diff --git a/pciusb.c b/pciusb.c index ecbae72..b031834 100644 --- a/pciusb.c +++ b/pciusb.c @@ -93,7 +93,7 @@ extern int pciusb_find_modules(struct pciusb_entries entries, const char *fpcius struct pciusb_entry *e = &entries.entries[i]; if (vendor == e->vendor && device == e->device) { if (nb == 4 && e->subvendor == 0xffff && e->subdevice == 0xffff && !no_subid) { - pciusb_free(entries); + pciusb_free(&entries); fh_close(f); return 0; /* leave, let the caller call again with subids */ } @@ -129,13 +129,13 @@ extern void pciusb_initialize(struct pciusb_entry *e) { e->text = NULL; } -extern void pciusb_free(struct pciusb_entries entries) { +extern void pciusb_free(struct pciusb_entries *entries) { int i; - for (i = 0; i < entries.nb; i++) { - struct pciusb_entry e = entries.entries[i]; - ifree(e.module); - ifree(e.text); + for (i = 0; i < entries->nb; i++) { + struct pciusb_entry *e = &entries->entries[i]; + ifree(e->module); + ifree(e->text); } - ifree(entries.entries); + ifree(entries->entries); } -- cgit v1.2.1