diff options
Diffstat (limited to 'libdha/sysdep/pci_linux.c')
-rw-r--r-- | libdha/sysdep/pci_linux.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/libdha/sysdep/pci_linux.c b/libdha/sysdep/pci_linux.c index f4b46990a4..9382ebf2dc 100644 --- a/libdha/sysdep/pci_linux.c +++ b/libdha/sysdep/pci_linux.c @@ -10,8 +10,26 @@ #include <sys/io.h> #endif +#include "config.h" + +#ifdef CONFIG_DHAHELPER +#include <fcntl.h> +int dhahelper_initialized = 0; +int dhahelper_fd = 0; +#endif + static __inline__ int enable_os_io(void) { +#ifdef CONFIG_DHAHELPER + dhahelper_fd = open("/dev/dhahelper", O_RDWR); + if (dhahelper_fd > 0) + { + dhahelper_initialized = 1; + return(0); + } + dhahelper_initialized = -1; +#endif + if (iopl(3) != 0) return(errno); return(0); @@ -19,6 +37,11 @@ static __inline__ int enable_os_io(void) static __inline__ int disable_os_io(void) { +#ifdef CONFIG_DHAHELPER + if (dhahelper_initialized == 1) + close(dhahelper_fd); + else +#endif if (iopl(0) != 0) return(errno); return(0); |