--- vaiobat.c Tue Dec 12 09:42:20 2000 +++ vaiobat.c Wed Mar 21 20:16:59 2001 @@ -4,18 +4,50 @@ #include #include #include +#ifdef LINUX #include +#endif #include #include #include +#ifdef LINUX #include +#endif #include #include +#ifdef HAVE_GETOPT_H #include +#endif +#ifdef LINUX #include +#endif #include + +#ifdef __FreeBSD__ +#include +static int deviofd=-1; +static int iopl(int lvl) +{ + if(lvl==0){ + if(deviofd!=-1){ + close(deviofd); + deviofd=-1; + } + return 0; + }else if(lvl==3){ + if(deviofd==-1){ + deviofd=open("/dev/io",0); + } + return deviofd; + } + return -1; +} + +#endif + + #define DATA_REG 0x62 #define CST_REG 0x66 @@ -25,20 +57,20 @@ static void ecr_set(u8 addr, u8 value) { while (inb(CST_REG) & 3) usleep(1); - outb(0x81, CST_REG); + outb(CST_REG, 0x81); while (inb(CST_REG) & 2) usleep(1); - outb(addr, DATA_REG); + outb(DATA_REG, addr); while (inb(CST_REG) & 2) usleep(1); - outb(value, DATA_REG); + outb(DATA_REG, value); while (inb(CST_REG) & 2) usleep(1); } static u8 ecr_get(u8 addr) { while (inb(CST_REG) & 3) usleep(1); - outb(0x80, CST_REG); + outb(CST_REG, 0x80); while (inb(CST_REG) & 2) usleep(1); - outb(addr, DATA_REG); + outb(DATA_REG, addr); while (inb(CST_REG) & 2) usleep(1); return inb(DATA_REG); }