X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Fpci.h;h=294f3a9c526277a843283f00c6a708c0cb13347c;hb=caeac5c38e34c5282a0646a697acaa1fea22ddb7;hp=7d79424d362a931282526c1d65afd089ca79c4a2;hpb=6d5e39acd6ad8eb295442f127df2216d3ed992f9;p=pciutils.git diff --git a/lib/pci.h b/lib/pci.h index 7d79424..294f3a9 100644 --- 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;