summaryrefslogtreecommitdiffstats
path: root/libdha/sysdep/pci_linux.c
diff options
context:
space:
mode:
Diffstat (limited to 'libdha/sysdep/pci_linux.c')
-rw-r--r--libdha/sysdep/pci_linux.c23
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);