Add support for GNU Hurd.
authorstefanct <stefanct@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>
Sun, 6 Mar 2016 22:32:16 +0000 (22:32 +0000)
committerstefanct <stefanct@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>
Sun, 6 Mar 2016 22:32:16 +0000 (22:32 +0000)
Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
git-svn-id: svn://flashrom.org/flashrom/trunk@1948 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

hwaccess.c
os.h

index 528550d..1901ee6 100644 (file)
 #include "flash.h"
 #include "hwaccess.h"
 
-#if !(IS_LINUX || IS_MACOSX || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) || defined(__DJGPP__) || defined(__LIBPAYLOAD__) || defined(__sun))
+#if !(IS_LINUX || IS_MACOSX || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) || defined(__DJGPP__) || defined(__LIBPAYLOAD__) || defined(__sun) || defined(__gnu_hurd__))
 #error "Unknown operating system"
 #endif
 
 #define USE_IOPL       (IS_LINUX || IS_MACOSX || defined(__NetBSD__) || defined(__OpenBSD__))
 #define USE_DEV_IO     (defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__))
+#define USE_IOPERM     (defined(__gnu_hurd__))
+
+#if USE_IOPERM
+#include <sys/io.h>
+#endif
 
 #if IS_X86 && USE_DEV_IO
 int io_fd;
@@ -82,6 +87,8 @@ static int release_io_perms(void *p)
        sysi86(SI86V86, V86SC_IOPL, 0);
 #elif USE_DEV_IO
        close(io_fd);
+#elif USE_IOPERM
+       ioperm(0, 65536, 0);
 #elif USE_IOPL
        iopl(0);
 #endif
@@ -97,6 +104,8 @@ int rget_io_perms(void)
        if (sysi86(SI86V86, V86SC_IOPL, PS_IOPL) != 0) {
 #elif USE_DEV_IO
        if ((io_fd = open("/dev/io", O_RDWR)) < 0) {
+#elif USE_IOPERM
+       if (ioperm(0, 65536, 1) != 0) {
 #elif USE_IOPL
        if (iopl(3) != 0) {
 #endif
diff --git a/os.h b/os.h
index e5f72e4..b59e087 100644 (file)
--- a/os.h
+++ b/os.h
@@ -56,6 +56,9 @@
 // libpayload
 #elif defined(__LIBPAYLOAD__)
 #define __FLASHROM_OS__ "libpayload"
+// GNU Hurd
+#elif defined(__gnu_hurd__)
+#define __FLASHROM_OS__ "Hurd"
 // Linux
 #elif defined(__linux__)
        // There are various flags in use on Android apparently. __ANDROID__ seems to be the most trustworthy.