ectool: fix NetBSD compilation

Since NetBSD does not support uname -o, push check for CygWin
inside separate non-failing condition in Makefile.

Change-Id: Ibd264384f49b33412f0ef8554bd9c9fb8f60a892
Signed-off-by: Andrey Korolyov <andrey@xdel.ru>
Reviewed-on: https://review.coreboot.org/12831
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
Andrey Korolyov 2016-01-05 14:27:59 +03:00 committed by Patrick Georgi
parent ffc2260d74
commit 393d9322ba
3 changed files with 37 additions and 2 deletions

View File

@ -19,12 +19,16 @@ CFLAGS = -O2 -Wall -W
PROGRAM = ectool
INSTALL = /usr/bin/install
PREFIX = /usr/local
OS_ARCH = $(shell uname)
OS_ARCH = $(shell uname -o)
ifeq ($(OS_ARCH), Cygwin)
ifeq ($(shell uname -o 2>/dev/null), Cygwin)
LDFLAGS = -lioperm
endif
ifeq ($(OS_ARCH), NetBSD)
LDFLAGS = -l$(shell uname -p)
endif
all: $(PROGRAM)
$(PROGRAM): ec.o ectool.o

View File

@ -17,9 +17,25 @@
#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
#ifndef __NetBSD__
#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)

View File

@ -18,10 +18,17 @@
#include <stdlib.h>
#include <unistd.h>
#include <getopt.h>
#ifndef __NetBSD__
#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)
@ -106,7 +113,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);
}