#ifndef _PCI_PCI_H\r
#define _PCI_PCI_H\r
\r
+/* we implement at least this version */\r
+#define PCI_LIB_VERSION 0x020200\r
+\r
#include <pci.h>\r
\r
#define PCI_CLASS_DEVICE REG_CLASS_DEV\r
#define PCI_SUBSYSTEM_VENDOR_ID REG_SUBSYS_VENDOR_ID\r
#define PCI_SUBSYSTEM_ID REG_SUBSYS_ID\r
\r
+#define PCI_COMMAND REG_COMMAND\r
+#define PCI_COMMAND_IO REG_COMMAND_IO\r
+#define PCI_COMMAND_MEMORY REG_COMMAND_MEM\r
+#define PCI_COMMAND_MASTER REG_COMMAND_BM\r
+\r
+#define PCI_HEADER_TYPE REG_HEADER_TYPE\r
+#define PCI_HEADER_TYPE_NORMAL HEADER_TYPE_NORMAL\r
+#define PCI_HEADER_TYPE_BRIDGE HEADER_TYPE_BRIDGE\r
+#define PCI_HEADER_TYPE_CARDBUS HEADER_TYPE_CARDBUS\r
+\r
+#define PCI_BASE_ADDRESS_0 0x10\r
+#define PCI_BASE_ADDRESS_1 0x14\r
+#define PCI_BASE_ADDRESS_2 0x18\r
+#define PCI_BASE_ADDRESS_3 0x1c\r
+#define PCI_BASE_ADDRESS_4 0x20\r
+#define PCI_BASE_ADDRESS_5 0x24\r
+#define PCI_BASE_ADDRESS_SPACE 1 // mask\r
+#define PCI_BASE_ADDRESS_SPACE_IO 1\r
+#define PCI_BASE_ADDRESS_SPACE_MEM 0\r
+#define PCI_BASE_ADDRESS_IO_MASK ~0xf\r
+#define PCI_BASE_ADDRESS_MEM_MASK ~0x3\r
+\r
+#define PCI_ROM_ADDRESS 0x30\r
+#define PCI_ROM_ADDRESS1 0x38 // on bridges\r
+#define PCI_ROM_ADDRESS_MASK ~0x7ff\r
+\r
+#define PCI_VENDOR_ID_INTEL 0x8086\r
+\r
struct pci_dev {\r
u16 domain;\r
u8 bus, dev, func;\r
\r
struct pci_access *pci_alloc(void);\r
void pci_init(struct pci_access*);\r
+void pci_cleanup(struct pci_access*);\r
char *pci_filter_parse_slot(struct pci_filter*, const char*);\r
int pci_filter_match(struct pci_filter*, struct pci_dev*);\r
void pci_filter_init(struct pci_access*, struct pci_filter*);\r