]> mj.ucw.cz Git - pciutils.git/blobdiff - lib/fbsd-device.c
Added support for GNU/kFreeBSD.
[pciutils.git] / lib / fbsd-device.c
index 09041e370b740564b59b8d2da37f396407bbe9f4..ba3337c84c18c13b3ce5cb4f6f5573e3c0c17f78 100644 (file)
 #include <string.h>
 #include <unistd.h>
 #include <osreldate.h>
+#include <stdint.h>
+
+#ifdef __FreeBSD_kernel_version
+#  ifndef __FreeBSD_version
+#    define __FreeBSD_version __FreeBSD_kernel_version
+#  endif
+#endif
 
 #if __FreeBSD_version < 500000
 #  include <pci/pcivar.h>
@@ -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;