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:
parent
ffc2260d74
commit
393d9322ba
|
@ -19,12 +19,16 @@ CFLAGS = -O2 -Wall -W
|
||||||
PROGRAM = ectool
|
PROGRAM = ectool
|
||||||
INSTALL = /usr/bin/install
|
INSTALL = /usr/bin/install
|
||||||
PREFIX = /usr/local
|
PREFIX = /usr/local
|
||||||
|
OS_ARCH = $(shell uname)
|
||||||
|
|
||||||
OS_ARCH = $(shell uname -o)
|
ifeq ($(shell uname -o 2>/dev/null), Cygwin)
|
||||||
ifeq ($(OS_ARCH), Cygwin)
|
|
||||||
LDFLAGS = -lioperm
|
LDFLAGS = -lioperm
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(OS_ARCH), NetBSD)
|
||||||
|
LDFLAGS = -l$(shell uname -p)
|
||||||
|
endif
|
||||||
|
|
||||||
all: $(PROGRAM)
|
all: $(PROGRAM)
|
||||||
|
|
||||||
$(PROGRAM): ec.o ectool.o
|
$(PROGRAM): ec.o ectool.o
|
||||||
|
|
|
@ -17,9 +17,25 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#ifndef __NetBSD__
|
||||||
#include <sys/io.h>
|
#include <sys/io.h>
|
||||||
|
#endif
|
||||||
#include "ec.h"
|
#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;
|
extern int verbose;
|
||||||
|
|
||||||
#define debug(x...) if (verbose) printf(x)
|
#define debug(x...) if (verbose) printf(x)
|
||||||
|
|
|
@ -18,10 +18,17 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
|
#ifndef __NetBSD__
|
||||||
#include <sys/io.h>
|
#include <sys/io.h>
|
||||||
|
#endif
|
||||||
#include <ec.h>
|
#include <ec.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#ifdef __NetBSD__
|
||||||
|
#include <machine/sysarch.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#define ECTOOL_VERSION "0.1"
|
#define ECTOOL_VERSION "0.1"
|
||||||
|
|
||||||
void print_version(void)
|
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)) {
|
if (iopl(3)) {
|
||||||
|
#endif
|
||||||
printf("You need to be root.\n");
|
printf("You need to be root.\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue