]> mj.ucw.cz Git - pciutils.git/blobdiff - lib/pci.h
Fix inconsistent bus centric view between the sysfs and proc methods
[pciutils.git] / lib / pci.h
index 7d79424d362a931282526c1d65afd089ca79c4a2..294f3a9c526277a843283f00c6a708c0cb13347c 100644 (file)
--- a/lib/pci.h
+++ b/lib/pci.h
@@ -16,7 +16,7 @@
 #include "header.h"
 #include "types.h"
 
-#define PCI_LIB_VERSION 0x030000
+#define PCI_LIB_VERSION 0x030100
 
 #ifndef PCI_ABI
 #define PCI_ABI
@@ -72,10 +72,11 @@ struct pci_access {
   struct id_bucket *current_id_bucket;
   int id_load_failed;
   int id_cache_status;                 /* 0=not read, 1=read, 2=dirty */
-  int fd;                              /* proc: fd */
-  int fd_rw;                           /* proc: fd opened read-write */
-  struct pci_dev *cached_dev;          /* proc: device the fd is for */
-  int fd_pos;                          /* proc: current position */
+  int fd;                              /* proc/sys: fd for config space */
+  int fd_rw;                           /* proc/sys: fd opened read-write */
+  int fd_pos;                          /* proc/sys: current position */
+  int fd_vpd;                          /* sys: fd for VPD */
+  struct pci_dev *cached_dev;          /* proc/sys: device the fds are for */
 };
 
 /* Initialize PCI access */
@@ -128,6 +129,7 @@ struct pci_dev {
   pciaddr_t rom_base_addr;             /* Expansion ROM base address */
   pciaddr_t rom_size;                  /* Expansion ROM size */
   struct pci_cap *first_cap;           /* List of capabilities */
+  char *phy_slot;                      /* Physical slot */
 
   /* Fields used internally: */
   struct pci_access *access;
@@ -140,11 +142,13 @@ struct pci_dev {
 
 #define PCI_ADDR_IO_MASK (~(pciaddr_t) 0x3)
 #define PCI_ADDR_MEM_MASK (~(pciaddr_t) 0xf)
+#define PCI_ADDR_FLAG_MASK 0xf
 
 u8 pci_read_byte(struct pci_dev *, int pos) PCI_ABI; /* Access to configuration space */
 u16 pci_read_word(struct pci_dev *, int pos) PCI_ABI;
 u32 pci_read_long(struct pci_dev *, int pos) PCI_ABI;
 int pci_read_block(struct pci_dev *, int pos, u8 *buf, int len) PCI_ABI;
+int pci_read_vpd(struct pci_dev *d, int pos, u8 *buf, int len) PCI_ABI;
 int pci_write_byte(struct pci_dev *, int pos, u8 data) PCI_ABI;
 int pci_write_word(struct pci_dev *, int pos, u16 data) PCI_ABI;
 int pci_write_long(struct pci_dev *, int pos, u32 data) PCI_ABI;
@@ -160,6 +164,7 @@ int pci_fill_info(struct pci_dev *, int flags) PCI_ABI; /* Fill in device inform
 #define PCI_FILL_CLASS         32
 #define PCI_FILL_CAPS          64
 #define PCI_FILL_EXT_CAPS      128
+#define PCI_FILL_PHYS_SLOT     256
 #define PCI_FILL_RESCAN                0x10000
 
 void pci_setup_cache(struct pci_dev *, u8 *cache, int len) PCI_ABI;
@@ -175,8 +180,8 @@ struct pci_cap {
   unsigned int addr;                   /* Position in the config space */
 };
 
-#define PCI_CAP_NORMAL         0       /* Traditional PCI capabilities */
-#define PCI_CAP_EXTENDED       1       /* PCIe extended capabilities */
+#define PCI_CAP_NORMAL         1       /* Traditional PCI capabilities */
+#define PCI_CAP_EXTENDED       2       /* PCIe extended capabilities */
 
 struct pci_cap *pci_find_cap(struct pci_dev *, unsigned int id, unsigned int type) PCI_ABI;