summaryrefslogtreecommitdiff
path: root/src/common_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common_init.c')
-rw-r--r--src/common_init.c42
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)
{