Steven Dee (i@wholezero.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18260
-gerrit
commit 85150875b4080a0b387aad7b84ae8763cfb93106 Author: Steven Dee i@wholezero.org Date: Sun Jan 29 14:52:56 2017 -0500
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 --- util/ectool/Makefile | 2 +- util/ectool/ec.c | 4 ++-- util/ectool/ectool.c | 22 ++++++++++++---------- 3 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/util/ectool/Makefile b/util/ectool/Makefile index 8aa1415..234e931 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 098e812..08b6b1b 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 50ac30b..6d9668d 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); }