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

Reply via email to