--- picturebook/setbrightness.c Tue Dec 12 09:42:20 2000 +++ picturebook.new/setbrightness.c Wed Mar 21 20:15:30 2001 @@ -4,17 +4,47 @@ #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 @@ -24,20 +54,20 @@ static void ecr_set(u16 addr, u16 value) { while (inw(CST_REG) & 3) usleep(1); - outw(0x81, CST_REG); + outw(CST_REG, 0x81); while (inw(CST_REG) & 2) usleep(1); - outw(addr, DATA_REG); + outw(DATA_REG, addr); while (inw(CST_REG) & 2) usleep(1); - outw(value, DATA_REG); + outw(DATA_REG, value); while (inw(CST_REG) & 2) usleep(1); } static u16 ecr_get(u16 addr) { while (inw(CST_REG) & 3) usleep(1); - outb(0x80, CST_REG); + outb(CST_REG, 0x80); while (inw(CST_REG) & 2) usleep(1); - outb(addr, DATA_REG); + outb(DATA_REG, addr); while (inw(CST_REG) & 2) usleep(1); return inw(DATA_REG); }