diff options
author | Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> | 2016-03-06 22:32:16 +0000 |
---|---|---|
committer | Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> | 2016-03-06 22:32:16 +0000 |
commit | 4220cf4aaaf16e60d557e90535790d116b230d05 (patch) | |
tree | 5b4df6ed317be4668e51277ee65e9ce34385d8a8 | |
parent | 08593c5646e25a7497b4cc576df6f6776235ba56 (diff) | |
download | flashrom-4220cf4aaaf16e60d557e90535790d116b230d05.zip flashrom-4220cf4aaaf16e60d557e90535790d116b230d05.tar.gz |
Add support for GNU Hurd
Corresponding to flashrom svn r1948.
Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
-rw-r--r-- | hwaccess.c | 11 | ||||
-rw-r--r-- | os.h | 3 |
2 files changed, 13 insertions, 1 deletions
@@ -33,12 +33,17 @@ #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 @@ -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. |