portable keyboard for alphapc kernels Reference: /n/atom/patch/applied/pckbalphapc Date: Tue May 6 19:47:18 CES 2014 Signed-off-by: quanstro@quanstro.net --- /sys/src/9/alphapc/apc Tue May 6 19:47:18 2014 +++ /sys/src/9/alphapc/apc Tue May 6 19:47:18 2014 @@ -27,6 +27,7 @@ floppy dma audio dma + pckb i8042 latin1 uart link --- /sys/src/9/alphapc/apccpu Tue May 6 19:47:18 2014 +++ /sys/src/9/alphapc/apccpu Tue May 6 19:47:18 2014 @@ -23,6 +23,7 @@ floppy dma audio dma + pckb i8042 latin1 uart link @@ -33,7 +34,7 @@ misc arch164 - sdata pci sdscsi + sdide pci sdscsi # sd53c8xx pci sdscsi uarti8250 --- /sys/src/9/alphapc/arch164.c Tue May 6 19:47:18 2014 +++ /sys/src/9/alphapc/arch164.c Tue May 6 19:47:18 2014 @@ -214,18 +214,18 @@ return *(uchar*)(iobase(port)); } -ushort +u16int ins2117x(int port) { mb(); - return *(ushort*)(iobase(port)); + return *(u16int*)(iobase(port)); } -ulong +u32int inl2117x(int port) { mb(); - return *(ulong*)(iobase(port)); + return *(u32int*)(iobase(port)); } void @@ -237,18 +237,18 @@ } void -outs2117x(int port, ushort val) +outs2117x(int port, u16int val) { mb(); - *(ushort*)(iobase(port)) = val; + *(u16int*)(iobase(port)) = val; mb(); } void -outl2117x(int port, ulong val) +outl2117x(int port, u32int val) { mb(); - *(ulong*)(iobase(port)) = val; + *(u32int*)(iobase(port)) = val; mb(); } --- /sys/src/9/alphapc/dat.h Tue May 6 19:47:18 2014 +++ /sys/src/9/alphapc/dat.h Tue May 6 19:47:18 2014 @@ -90,6 +90,7 @@ uint ialloc; /* bytes available for interrupt time allocation */ ulong pipeqsize; /* size in bytes of pipe queues */ int postdawn; /* multiprogramming on */ + int nokbd; /* no i8042 keyboard */ }; /* @@ -210,11 +211,11 @@ int (*intrdisable)(int); int (*_inb)(int); - ushort (*_ins)(int); - ulong (*_inl)(int); + u16int (*_ins)(int); + u32int (*_inl)(int); void (*_outb)(int, int); - void (*_outs)(int, ushort); - void (*_outl)(int, ulong); + void (*_outs)(int, u16int); + void (*_outl)(int, u32int); void (*_insb)(int, void*, int); void (*_inss)(int, void*, int); void (*_insl)(int, void*, int); --- /sys/src/9/alphapc/fns.h Tue May 6 19:47:18 2014 +++ /sys/src/9/alphapc/fns.h Tue May 6 19:47:18 2014 @@ -5,6 +5,7 @@ void arginit(void); void arith(void); ulong cankaddr(ulong); +int cas(void*, int, int); void clock(Ureg*); void clockinit(void); void clockintrsched(void); @@ -35,8 +36,10 @@ char *getconf(char*); int havetimer(void); int i8042auxcmd(int); -void i8042auxenable(void (*)(int, int)); +void i8042auxenable(void (*)(int)); void i8042reset(void); +void i8042kbdenable(void); +void i8042init(void); void i8250console(void); void i8250mouse(char*, int(*)(Queue*,int), int); void i8250setmouseputc(char*, int (*)(Queue*, int)); --- /sys/src/9/alphapc/i8042.c Thu Jan 1 00:00:00 1970 +++ /sys/src/9/alphapc/i8042.c Tue May 6 19:47:18 2014 @@ -0,0 +1 @@ +#include "../pcpae/i8042.c" --- /sys/src/9/alphapc/main.c Tue May 6 19:47:18 2014 +++ /sys/src/9/alphapc/main.c Tue May 6 19:47:18 2014 @@ -101,7 +101,7 @@ printinit(); /* it's now safe to print */ /* dumpopts(); /* DEBUG */ - kbdinit(); + i8042init(); i8250console(); fmtinit(); print("\nPlan 9\n"); @@ -110,6 +110,7 @@ if(arch->corehello) arch->corehello(); + i8042kbdenable(); procinit0(); initseg(); timersinit(); --- /sys/src/9/alphapc/mkfile Tue May 6 19:47:18 2014 +++ /sys/src/9/alphapc/mkfile Tue May 6 19:47:18 2014 @@ -16,7 +16,6 @@ chan.$O\ dev.$O\ fault.$O\ - latin1.$O\ log.$O\ edf.$O\ mul64fract.$O\ @@ -46,7 +45,6 @@ fdc37c93x.$O\ fptrap.$O\ i8259.$O\ - kbd.$O\ main.$O\ mmu.$O\ random.$O\