diff options
Diffstat (limited to 'sysutils/sjog/files/patch-setbrightness::setbrightness.c')
-rw-r--r-- | sysutils/sjog/files/patch-setbrightness::setbrightness.c | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/sysutils/sjog/files/patch-setbrightness::setbrightness.c b/sysutils/sjog/files/patch-setbrightness::setbrightness.c new file mode 100644 index 000000000000..c1a8962fd0e4 --- /dev/null +++ b/sysutils/sjog/files/patch-setbrightness::setbrightness.c @@ -0,0 +1,86 @@ +--- setbrightness/setbrightness.c.orig Sat Jul 28 18:16:22 2001 ++++ setbrightness/setbrightness.c Sat Aug 17 20:38:56 2002 +@@ -1,44 +1,58 @@ ++/* FreeBSD modifications by Jay Kuri jk@oneway.com 08/13/01 */ ++ + #define _XOPEN_SOURCE 500 + #include <stdio.h> + #include <stdlib.h> + #include <unistd.h> + #include <fcntl.h> + #include <errno.h> ++#ifndef __FreeBSD__ + #include <sys/io.h> ++#endif + #include <sys/mman.h> + #include <dirent.h> + #include <ctype.h> + #include <malloc.h> + #include <string.h> + #include <signal.h> ++#ifndef __FreeBSD__ + #include <getopt.h> + #include <linux/pci.h> ++#endif + #include <sys/time.h> ++#ifdef __FreeBSD__ ++#include <machine/cpufunc.h> ++#include "../src/sonypi.h" ++#endif + + + #define BRIGHTNESS 0x96 + #define DATA_REG 0x62 + #define CST_REG 0x66 + ++#ifndef __FreeBSD__ + typedef unsigned short u16; ++#define OUTW outw ++#define OUTB outb ++#endif + + static void ecr_set(u16 value) + { + while (inw(CST_REG) & 3) usleep(1); +- outw(0x81, CST_REG); ++ OUTW(0x81, CST_REG); + while (inw(CST_REG) & 2) usleep(1); +- outw(BRIGHTNESS, DATA_REG); ++ OUTW(BRIGHTNESS, DATA_REG); + while (inw(CST_REG) & 2) usleep(1); +- outw(value, DATA_REG); ++ OUTW(value, DATA_REG); + while (inw(CST_REG) & 2) usleep(1); + } + + static u16 ecr_get() + { + while (inw(CST_REG) & 3) usleep(1); +- outb(0x80, CST_REG); ++ OUTB(0x80, CST_REG); + while (inw(CST_REG) & 2) usleep(1); +- outb(BRIGHTNESS, DATA_REG); ++ OUTB(BRIGHTNESS, DATA_REG); + while (inw(CST_REG) & 2) usleep(1); + return (inw(DATA_REG)&255); + } +@@ -52,14 +66,17 @@ + int main(int argc, char *argv[]) + { + ++#ifndef __FreeBSD__ + ioperm(DATA_REG, 0x08, 1); ++#endif + if( geteuid() != 0 ) + fprintf(stdout, "You must be root to use %s\n", argv[0]); + + else if( argc == 2 && strcmp(argv[1], "--read") == 0) ++ { ++ iopl(3); + printf("%d\n", ecr_get()); +- +- else if( argc != 2 || !isdigit(argv[1][0])) ++ } else if( argc != 2 || !isdigit(argv[1][0])) + usage(); + + else |