Patrick Georgi wrote: > attached patch provides a libpci implementation sufficient to get > flashrom to compile. It should work but is untested beyond what flashrom > does. It's also incomplete: libpci has many more capabilities than > exposed in this variant. > > No pciutils code was harmed in its production - this code was written by > looking at flashrom's expectations, so licensing is clean. > > Signed-off-by: Patrick Georgi <[email protected]>
With one important comment and one about style, this is: Acked-by: Peter Stuge <[email protected]> > +++ libpci/libpci.c (Revision 0) .. > +int pci_filter_match(struct pci_filter* pf, struct pci_dev* dev) > +{ > + int match = 1; > + if ((pf->domain > -1) && (pf->domain != dev->domain)) match = 0; > + if ((pf->bus > -1) && (pf->bus != dev->bus)) match = 0; > + if ((pf->dev > -1) && (pf->dev != dev->dev)) match = 0; > + if ((pf->func > -1) && (pf->func != dev->func)) match = 0; > + if ((pf->vendor > -1) && (pf->vendor != dev->vendor_id)) match = 0; > + if ((pf->device > -1) && (pf->device != dev->device_id)) match = 0; > + return match; > +} Maybe skip the variable and return directly? I'd also like the return to be on it's own line. > +struct pci_dev *pci_get_dev(struct pci_access* pacc, u16 domain, u8 bus, u8 > dev, u8 func) > +{ > + struct pci_dev *cur; > + for (cur = pacc->devices; cur != NULL; cur = cur->next) { > + if ((cur->domain == domain) && (cur->bus == bus) && (cur->dev > == dev) && (cur->func == func)) break; > + cur = cur->next; > + } > + /* FIXME: is NULL the right answer if device not found? */ > + return cur; > +} This function doesn't search, it "creates" a struct pci_dev using pci_alloc() + PCI_DEV(), so it may even be possible to remove libpci_to_lb(). //Peter -- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

