]> mj.ucw.cz Git - pciutils.git/commitdiff
Add pci_read_vpd() function and internal read_vpd() method
authorBen Hutchings <bhutchings@solarflare.com>
Tue, 18 Nov 2008 20:24:19 +0000 (20:24 +0000)
committerMartin Mares <mj@ucw.cz>
Fri, 21 Nov 2008 21:00:38 +0000 (22:00 +0100)
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
12 files changed:
lib/access.c
lib/aix-device.c
lib/dump.c
lib/fbsd-device.c
lib/i386-ports.c
lib/internal.h
lib/libpci.ver
lib/nbsd-libpci.c
lib/obsd-device.c
lib/pci.h
lib/proc.c
lib/sysfs.c

index bd829a6e37537be6451f9c9a7caec9ec563982f3..23a821c1af7f82a17ed61ec7d0747200a739a653 100644 (file)
@@ -103,6 +103,12 @@ pci_read_block(struct pci_dev *d, int pos, byte *buf, int len)
   return d->methods->read(d, pos, buf, len);
 }
 
+int
+pci_read_vpd(struct pci_dev *d, int pos, byte *buf, int len)
+{
+  return d->methods->read_vpd ? d->methods->read_vpd(d, pos, buf, len) : 0;
+}
+
 static inline int
 pci_write_data(struct pci_dev *d, void *buf, int pos, int len)
 {
index cb0a974ec38398d22f51e9bd22c570441808a147..a10bea5333220ae5f18d6919f8b86be64b4aaca1 100644 (file)
@@ -269,6 +269,7 @@ struct pci_methods pm_aix_device = {
   pci_generic_fill_info,
   aix_read,
   aix_write,
+  NULL,                                 /* read_vpd */
   NULL,                                 /* dev_init */
   NULL                                  /* dev_cleanup */
 };
index 69a99c82ae3a50897eb6557ac03da43d6a3335b2..0196f6998cdd1ee838d19343242c424d8fdc1a8f 100644 (file)
@@ -173,6 +173,7 @@ struct pci_methods pm_dump = {
   pci_generic_fill_info,
   dump_read,
   dump_write,
+  NULL,                                        /* read_vpd */
   NULL,                                        /* init_dev */
   dump_cleanup_dev
 };
index 742c6419f54efa1dbdb1b64057c3402e40345624..ab04954b6682a320e0b9215115a0801307ca3499 100644 (file)
@@ -164,6 +164,7 @@ struct pci_methods pm_fbsd_device = {
   pci_generic_fill_info,
   fbsd_read,
   fbsd_write,
+  NULL,                                 /* read_vpd */
   NULL,                                 /* dev_init */
   NULL                                  /* dev_cleanup */
 };
index 50ae61567f7f86e544d4039c10af731f63cc4b7e..072fac5fa602ffee8c98241c4f290a2caf0a1dfa 100644 (file)
@@ -265,6 +265,7 @@ struct pci_methods pm_intel_conf1 = {
   pci_generic_fill_info,
   conf1_read,
   conf1_write,
+  NULL,                                        /* read_vpd */
   NULL,                                        /* init_dev */
   NULL                                 /* cleanup_dev */
 };
@@ -280,6 +281,7 @@ struct pci_methods pm_intel_conf2 = {
   pci_generic_fill_info,
   conf2_read,
   conf2_write,
+  NULL,                                        /* read_vpd */
   NULL,                                        /* init_dev */
   NULL                                 /* cleanup_dev */
 };
index 35ed65f1b426a55dcb3a651c7eef7f9e1573828b..0d9510915a029c03727c49d285e2b7a392978af0 100644 (file)
@@ -33,6 +33,7 @@ struct pci_methods {
   int (*fill_info)(struct pci_dev *, int flags);
   int (*read)(struct pci_dev *, int pos, byte *buf, int len);
   int (*write)(struct pci_dev *, int pos, byte *buf, int len);
+  int (*read_vpd)(struct pci_dev *, int pos, byte *buf, int len);
   void (*init_dev)(struct pci_dev *);
   void (*cleanup_dev)(struct pci_dev *);
 };
index 68cc932363c03f3cfc7ff1f792c1f07c9c54bd34..2f7dff7a085433a25d89c6948754068b2a71a7f3 100644 (file)
@@ -45,4 +45,5 @@ LIBPCI_3.1 {
        global:
                pci_fill_info;
                pci_find_cap;
+               pci_read_vpd;
 };
index 2d24c4cee69d96c92b421c126999adf1bede471b..20d76169a6407036f2dd15f49e487852c60a839e 100644 (file)
@@ -151,6 +151,7 @@ struct pci_methods pm_nbsd_libpci = {
   pci_generic_fill_info,
   nbsd_read,
   nbsd_write,
+  NULL,                                 /* read_vpd */
   NULL,                                 /* dev_init */
   NULL                                  /* dev_cleanup */
 };
index 62395b376f2b5917d84f1797cede1faebfc5eece..dc68422abf1ef02385c0b25145509ee6a1feeed3 100644 (file)
@@ -146,6 +146,7 @@ struct pci_methods pm_obsd_device = {
   pci_generic_fill_info,
   obsd_read,
   obsd_write,
+  NULL,                                 /* read_vpd */
   NULL,                                 /* dev_init */
   NULL                                  /* dev_cleanup */
 };
index d7f7fee31f71f638c16c3c36326d7b0a1898560c..c9c2c5fe9381d53b05a370246bf655df6467fce1 100644 (file)
--- a/lib/pci.h
+++ b/lib/pci.h
@@ -145,6 +145,7 @@ u8 pci_read_byte(struct pci_dev *, int pos) PCI_ABI; /* Access to configuration
 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;
index 1b44b4e80643831fd6a98689c4924d4c6b2a297d..bf877c4b2fa697685eef645b94c306d0659cf876 100644 (file)
@@ -197,6 +197,7 @@ struct pci_methods pm_linux_proc = {
   pci_generic_fill_info,
   proc_read,
   proc_write,
+  NULL,                                        /* read_vpd */
   NULL,                                        /* init_dev */
   proc_cleanup_dev
 };
index ea386fa8fbdfbf4a7dd616ef8469eed2c4bed7a7..695f1c20dff6e8b91bd92f96ab014d6b7c3fbf2f 100644 (file)
@@ -260,6 +260,7 @@ struct pci_methods pm_linux_sysfs = {
   pci_generic_fill_info,
   sysfs_read,
   sysfs_write,
+  NULL,                                        /* read_vpd */
   NULL,                                        /* init_dev */
   sysfs_cleanup_dev
 };