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)
{
pci_generic_fill_info,
aix_read,
aix_write,
+ NULL, /* read_vpd */
NULL, /* dev_init */
NULL /* dev_cleanup */
};
pci_generic_fill_info,
dump_read,
dump_write,
+ NULL, /* read_vpd */
NULL, /* init_dev */
dump_cleanup_dev
};
pci_generic_fill_info,
fbsd_read,
fbsd_write,
+ NULL, /* read_vpd */
NULL, /* dev_init */
NULL /* dev_cleanup */
};
pci_generic_fill_info,
conf1_read,
conf1_write,
+ NULL, /* read_vpd */
NULL, /* init_dev */
NULL /* cleanup_dev */
};
pci_generic_fill_info,
conf2_read,
conf2_write,
+ NULL, /* read_vpd */
NULL, /* init_dev */
NULL /* cleanup_dev */
};
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 *);
};
global:
pci_fill_info;
pci_find_cap;
+ pci_read_vpd;
};
pci_generic_fill_info,
nbsd_read,
nbsd_write,
+ NULL, /* read_vpd */
NULL, /* dev_init */
NULL /* dev_cleanup */
};
pci_generic_fill_info,
obsd_read,
obsd_write,
+ NULL, /* read_vpd */
NULL, /* dev_init */
NULL /* dev_cleanup */
};
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;
pci_generic_fill_info,
proc_read,
proc_write,
+ NULL, /* read_vpd */
NULL, /* init_dev */
proc_cleanup_dev
};
pci_generic_fill_info,
sysfs_read,
sysfs_write,
+ NULL, /* read_vpd */
NULL, /* init_dev */
sysfs_cleanup_dev
};