diff options
Diffstat (limited to 'src/common_init.c')
-rw-r--r-- | src/common_init.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/common_init.c b/src/common_init.c index d83eb33..511bb91 100644 --- a/src/common_init.c +++ b/src/common_init.c @@ -76,6 +76,48 @@ pci_system_init( void ) return err; } +int +pci_system_init_force( enum access_method method) +{ + int err = ENOSYS; +#ifdef __linux__ + if (method == PCI_ACCESS_LINUX) { + err = pci_system_linux_sysfs_create(); + } else if (method == PCI_ACCESS_RAW_X86) { + err = pci_system_x86_create(); + } +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) + if (method == PCI_ACCESS_FREEBSD) { + err = pci_system_freebsd_create(); + } +#elif defined(__NetBSD__) + if (method == PCI_ACCESS_NETBSD) { + err = pci_system_netbsd_create(); + } +#elif defined(__OpenBSD__) + if (method == PCI_ACCESS_OPENBSD) { + err = pci_system_openbsd_create(); + } +#elif defined(__sun) + if (method == PCI_ACCESS_SUN) { + err = pci_system_solx_devfs_create(); + } +#elif defined(__GNU__) + if (method == PCI_ACCESS_HURD) { + err = pci_system_hurd_create(); + } else if (method == PCI_ACCESS_RAW_X86) { + err = pci_system_x86_create(); + } +#elif defined(__CYGWIN__) + if (method == PCI_ACCESS_RAW_X86) { + err = pci_system_x86_create(); + } +#else +# error "Unsupported OS" +#endif + return err; +} + void pci_system_init_dev_mem(int fd) { |