X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/a7a9d75b88768cbc4c61cbdaa0bc9fad7392af00..15521f07dc09a276839c46168201d31ee1ae4a97:/include/pci.h diff --git a/include/pci.h b/include/pci.h index 313b3e0..9e964ca 100644 --- a/include/pci.h +++ b/include/pci.h @@ -36,9 +36,25 @@ typedef struct pci_dev { pci_bar_t bars[6]; } pci_dev_t; -typedef int (*pci_probe_fn_t)(pci_dev_t *); +typedef int (*pci_probe_fn_t)(pci_dev_t *, void *data); void pci_bus_enum(); -int pci_probe(pci_probe_fn_t probe); +int pci_probe(pci_probe_fn_t probe, void *data); + +typedef struct pci_id { + unsigned short vid, did; + const char *name, *friendlyname; +} pci_id_t; + +#define PCI_ROM(a,b,c,d) {(a),(b),(c),(d)} + +typedef struct pci_driver { + const char *name; + pci_probe_fn_t probe; + pci_id_t *ids; + int id_count; +} pci_driver_t; + +int pci_probe_driver(pci_driver_t *driver); #endif