summaryrefslogtreecommitdiff
path: root/util/ectool
diff options
context:
space:
mode:
authorSteven Dee <i@wholezero.org>2017-01-29 14:52:56 -0500
committerPatrick Georgi <pgeorgi@google.com>2017-02-02 15:29:10 +0100
commit3236f7be093b3dfed606d6a6b4e81743ecfe0c5c (patch)
tree76f0d7545eeece3ebdcf9a57369b5b54cecffc08 /util/ectool
parent092db95742fe6e94b391d32d151868f70c5cab84 (diff)
ectool: Support OpenBSD
Adds checks for OpenBSD in all the places that were already checking for NetBSD. This fixes e.g.: ec.c:21:20: error: sys/io.h: No such file or directory which was caused by defaulting to Linux. Also, OpenBSD calls its amd64 iopl amd64_iopl instead of x86_64_iopl. This change just defines iopl appropriately depending on the OS and architecture. TEST=Build on OpenBSD 6.0 or -current from 2017-01-25. Change-Id: If6d92a9850c15cd9f8e287cc4f963d3ff881f72c Signed-off-by: Steven Dee <i@wholezero.org> Reviewed-on: https://review.coreboot.org/18260 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Diffstat (limited to 'util/ectool')
-rw-r--r--util/ectool/Makefile2
-rw-r--r--util/ectool/ec.c4
-rw-r--r--util/ectool/ectool.c22
3 files changed, 15 insertions, 13 deletions
diff --git a/util/ectool/Makefile b/util/ectool/Makefile
index 8aa1415a56..234e931e4a 100644
--- a/util/ectool/Makefile
+++ b/util/ectool/Makefile
@@ -25,7 +25,7 @@ ifeq ($(shell uname -o 2>/dev/null), Cygwin)
LDFLAGS = -lioperm
endif
-ifeq ($(OS_ARCH), NetBSD)
+ifeq ($(OS_ARCH), $(filter $(OS_ARCH), NetBSD OpenBSD))
LDFLAGS = -l$(shell uname -p)
endif
diff --git a/util/ectool/ec.c b/util/ectool/ec.c
index 098e8126d9..08b6b1b37d 100644
--- a/util/ectool/ec.c
+++ b/util/ectool/ec.c
@@ -17,12 +17,12 @@
#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
-#ifndef __NetBSD__
+#if !(defined __NetBSD__ || defined __OpenBSD__)
#include <sys/io.h>
#endif
#include "ec.h"
-#ifdef __NetBSD__
+#if defined __NetBSD__ || defined __OpenBSD__
#include <machine/sysarch.h>
static uint8_t inb(unsigned port)
{
diff --git a/util/ectool/ectool.c b/util/ectool/ectool.c
index 50ac30b5e5..6d9668ded2 100644
--- a/util/ectool/ectool.c
+++ b/util/ectool/ectool.c
@@ -18,14 +18,24 @@
#include <stdlib.h>
#include <unistd.h>
#include <getopt.h>
-#ifndef __NetBSD__
+#if !(defined __NetBSD__ || defined __OpenBSD__)
#include <sys/io.h>
#endif
#include <ec.h>
#include <stdlib.h>
-#ifdef __NetBSD__
+#if defined __NetBSD__ || defined __OpenBSD__
+
#include <machine/sysarch.h>
+
+# if defined __i386__
+# define iopl i386_iopl
+# elif defined __NetBSD__
+# define iopl x86_64_iopl
+# else
+# define iopl amd64_iopl
+# endif
+
#endif
@@ -113,15 +123,7 @@ int main(int argc, char *argv[])
}
}
-#ifdef __NetBSD__
-# ifdef __i386__
- if (i386_iopl(3)) {
-# else
- if (x86_64_iopl(3)) {
-# endif
-#else
if (iopl(3)) {
-#endif
printf("You need to be root.\n");
exit(1);
}