[coreboot-gerrit] Patch set updated for coreboot: ectool: fix NetBSD compilation
Andrey Korolyov (andrey@xdel.ru)
gerrit at coreboot.org
Tue Jan 5 19:08:54 CET 2016
Andrey Korolyov (andrey at xdel.ru) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/12831
-gerrit
commit bb6388ac11c1a8df57c638b0cd032f52fa5717e1
Author: Andrey Korolyov <andrey at xdel.ru>
Date: Tue Jan 5 14:27:59 2016 +0300
ectool: fix NetBSD compilation
Most of ifification was taken directly from pkgsrc/vbetool/patches/patch-ab
Change-Id: Ibd264384f49b33412f0ef8554bd9c9fb8f60a892
Signed-off-by: Andrey Korolyov <andrey at xdel.ru>
---
util/ectool/Makefile | 6 +++++-
util/ectool/ec.c | 22 ++++++++++++++++++++++
util/ectool/ectool.c | 17 +++++++++++++++++
3 files changed, 44 insertions(+), 1 deletion(-)
diff --git a/util/ectool/Makefile b/util/ectool/Makefile
index a869577..214032f 100644
--- a/util/ectool/Makefile
+++ b/util/ectool/Makefile
@@ -20,11 +20,15 @@ PROGRAM = ectool
INSTALL = /usr/bin/install
PREFIX = /usr/local
-OS_ARCH = $(shell uname -o)
+OS_ARCH = $(shell uname)
ifeq ($(OS_ARCH), Cygwin)
LDFLAGS = -lioperm
endif
+ifeq ($(OS_ARCH), NetBSD)
+LDFLAGS = -l$(shell uname -p)
+endif
+
all: $(PROGRAM)
$(PROGRAM): ec.o ectool.o
diff --git a/util/ectool/ec.c b/util/ectool/ec.c
index 406cc41..592491c 100644
--- a/util/ectool/ec.c
+++ b/util/ectool/ec.c
@@ -17,9 +17,31 @@
#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
+#ifdef __NetBSD__
+#include <sys/uio.h>
+#else
#include <sys/io.h>
+#endif
#include "ec.h"
+#ifdef __NetBSD__
+#include <machine/sysarch.h>
+
+static uint8_t
+inb(unsigned port)
+{
+ uint8_t data;
+ __asm volatile("inb %w1,%0" : "=a" (data) : "d" (port));
+ return data;
+}
+
+static __inline void
+outb(uint8_t data, unsigned port)
+{
+ __asm volatile("outb %0,%w1" : : "a" (data), "d" (port));
+}
+#endif
+
extern int verbose;
#define debug(x...) if (verbose) printf(x)
diff --git a/util/ectool/ectool.c b/util/ectool/ectool.c
index 4639c4e..f1a8631 100644
--- a/util/ectool/ectool.c
+++ b/util/ectool/ectool.c
@@ -18,10 +18,19 @@
#include <stdlib.h>
#include <unistd.h>
#include <getopt.h>
+#ifdef __NetBSD__
+#include <sys/uio.h>
+#else
#include <sys/io.h>
+#endif
#include <ec.h>
#include <stdlib.h>
+#ifdef __NetBSD__
+#include <machine/sysarch.h>
+#endif
+
+
#define ECTOOL_VERSION "0.1"
void print_version(void)
@@ -108,7 +117,15 @@ 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);
}
More information about the coreboot-gerrit
mailing list