summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/sys/io.h13
-rw-r--r--src/linux/ioperm.c9
-rw-r--r--src/linux/iopl.c9
3 files changed, 31 insertions, 0 deletions
diff --git a/include/sys/io.h b/include/sys/io.h
new file mode 100644
index 00000000..a6ba4674
--- /dev/null
+++ b/include/sys/io.h
@@ -0,0 +1,13 @@
+#ifndef _SYS_IO_H
+#define _SYS_IO_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int ioperm(unsigned long, unsigned long, int);
+int iopl(int);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/src/linux/ioperm.c b/src/linux/ioperm.c
new file mode 100644
index 00000000..6d7c37d0
--- /dev/null
+++ b/src/linux/ioperm.c
@@ -0,0 +1,9 @@
+#include <sys/io.h>
+#include "syscall.h"
+
+#ifdef SYS_ioperm
+int ioperm(unsigned long from, unsigned long num, int turn_on)
+{
+ return syscall(SYS_ioperm, from, num, turn_on);
+}
+#endif
diff --git a/src/linux/iopl.c b/src/linux/iopl.c
new file mode 100644
index 00000000..5a626e16
--- /dev/null
+++ b/src/linux/iopl.c
@@ -0,0 +1,9 @@
+#include <sys/io.h>
+#include "syscall.h"
+
+#ifdef SYS_iopl
+int iopl(int level)
+{
+ return syscall(SYS_iopl, level);
+}
+#endif