]> mj.ucw.cz Git - pciutils.git/blobdiff - lib/obsd-device.c
windows: Comment on MSVC inline asm issues
[pciutils.git] / lib / obsd-device.c
index 721f2f53c31d81193ff6b735fd41283253854043..e2e7652bcd75b32418af6d23e8561c0fca410639 100644 (file)
@@ -3,7 +3,9 @@
  *
  *     Adapted from fbsd-device.c by Matthieu Herrb <matthieu.herrb@laas.fr>, 2006
  *
- *     Can be freely distributed and used under the terms of the GNU GPL.
+ *     Can be freely distributed and used under the terms of the GNU GPL v2+.
+ *
+ *     SPDX-License-Identifier: GPL-2.0-or-later
  */
 
 #include <fcntl.h>
 static void
 obsd_config(struct pci_access *a)
 {
-  a->method_params[PCI_ACCESS_OBSD_DEVICE] = PCI_PATH_OBSD_DEVICE;
+  pci_define_param(a, "obsd.path", PCI_PATH_OBSD_DEVICE, "Path to the OpenBSD PCI device");
 }
 
 static int
 obsd_detect(struct pci_access *a)
 {
-  char *name = a->method_params[PCI_ACCESS_OBSD_DEVICE];
+  char *name = pci_get_param(a, "obsd.path");
 
   if (access(name, R_OK))
     {
@@ -39,7 +41,7 @@ obsd_detect(struct pci_access *a)
 static void
 obsd_init(struct pci_access *a)
 {
-  char *name = a->method_params[PCI_ACCESS_OBSD_DEVICE];
+  char *name = pci_get_param(a, "obsd.path");
 
   a->fd = open(name, O_RDWR, 0);
   if (a->fd < 0)
@@ -65,7 +67,7 @@ obsd_read(struct pci_dev *d, int pos, byte *buf, int len)
   if (!(len == 1 || len == 2 || len == 4))
     return pci_generic_block_read(d, pos, buf, len);
 
-  if (pos >= 256)
+  if (d->domain || pos >= 256)
     return 0;
 
   pi.pi_sel.pc_bus = d->bus;
@@ -106,7 +108,7 @@ obsd_write(struct pci_dev *d, int pos, byte *buf, int len)
   if (!(len == 1 || len == 2 || len == 4))
     return pci_generic_block_write(d, pos, buf, len);
 
-  if (pos >= 256)
+  if (d->domain || pos >= 256)
     return 0;
 
   pi.pi_sel.pc_bus = d->bus;
@@ -136,7 +138,8 @@ obsd_write(struct pci_dev *d, int pos, byte *buf, int len)
 }
 
 struct pci_methods pm_obsd_device = {
-  "OpenBSD-device",
+  "obsd-device",
+  "/dev/pci on OpenBSD",
   obsd_config,
   obsd_detect,
   obsd_init,
@@ -145,6 +148,7 @@ struct pci_methods pm_obsd_device = {
   pci_generic_fill_info,
   obsd_read,
   obsd_write,
+  NULL,                                 /* read_vpd */
   NULL,                                 /* dev_init */
   NULL                                  /* dev_cleanup */
 };