static void
nbsd_config(struct pci_access *a)
{
- a->method_params[PCI_ACCESS_NBSD_LIBPCI] = PCI_PATH_NBSD_DEVICE;
+ pci_define_param(a, "nbsd.path", PCI_PATH_NBSD_DEVICE, "Path to the NetBSD PCI device");
}
static int
nbsd_detect(struct pci_access *a)
{
- char *name = a->method_params[PCI_ACCESS_NBSD_LIBPCI];
+ char *name = pci_get_param(a, "nbsd.path");
if (access(name, R_OK))
{
}
if (!access(name, W_OK))
- {
- a->writeable = O_RDWR;
- }
+ a->writeable = O_RDWR;
a->debug("...using %s", name);
return 1;
}
static void
nbsd_init(struct pci_access *a)
{
- char *name = a->method_params[PCI_ACCESS_NBSD_LIBPCI];
+ char *name = pci_get_param(a, "nbsd.path");
int mode = a->writeable ? O_RDWR : O_RDONLY;
a->fd = open(name, mode, 0);
shift = 8*(pos % 4);
pos &= ~3;
-
+
if (pcibus_conf_read(d->access->fd, d->bus, d->dev, d->func, pos, &val) < 0)
d->access->error("nbsd_read: pci_bus_conf_read() failed");
val = le32_to_cpu(*(u32*)buf);
break;
}
-
+
if (pcibus_conf_write(d->access->fd, d->bus, d->dev, d->func, pos, val) < 0)
d->access->error("nbsd_write: pci_bus_conf_write() failed");
}
struct pci_methods pm_nbsd_libpci = {
- "NetBSD-libpci",
+ "nbsd-libpci",
+ "NetBSD libpci",
nbsd_config,
nbsd_detect,
nbsd_init,