X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Ffbsd-device.c;h=ba3337c84c18c13b3ce5cb4f6f5573e3c0c17f78;hb=d1058e9dee26b0ae0f8a595e07bfdee20a5fecef;hp=09041e370b740564b59b8d2da37f396407bbe9f4;hpb=ab12277ebc10a443b4aeba834c2e05481d1bb78a;p=pciutils.git diff --git a/lib/fbsd-device.c b/lib/fbsd-device.c index 09041e3..ba3337c 100644 --- a/lib/fbsd-device.c +++ b/lib/fbsd-device.c @@ -11,6 +11,13 @@ #include #include #include +#include + +#ifdef __FreeBSD_kernel_version +# ifndef __FreeBSD_version +# define __FreeBSD_version __FreeBSD_kernel_version +# endif +#endif #if __FreeBSD_version < 500000 # include @@ -29,7 +36,7 @@ static void fbsd_config(struct pci_access *a) { - a->method_params[PCI_ACCESS_FBSD_DEVICE] = PATH_FBSD_DEVICE; + a->method_params[PCI_ACCESS_FBSD_DEVICE] = PCI_PATH_FBSD_DEVICE; } static int @@ -74,6 +81,9 @@ fbsd_read(struct pci_dev *d, int pos, byte *buf, int len) return pci_generic_block_read(d, pos, buf, len); } + if (pos >= 256) + return 0; + pi.pi_sel.pc_bus = d->bus; pi.pi_sel.pc_dev = d->dev; pi.pi_sel.pc_func = d->func; @@ -109,6 +119,9 @@ fbsd_write(struct pci_dev *d, int pos, byte *buf, int len) return pci_generic_block_write(d, pos, buf, len); } + if (pos >= 256) + return 0; + pi.pi_sel.pc_bus = d->bus; pi.pi_sel.pc_dev = d->dev; pi.pi_sel.pc_func = d->func;