#ifndef __KERN_DRIVER_KBDREG_H__ #define __KERN_DRIVER_KBDREG_H__ // Special keycodes #define KEY_HOME 0xE0 #define KEY_END 0xE1 #define KEY_UP 0xE2 #define KEY_DN 0xE3 #define KEY_LF 0xE4 #define KEY_RT 0xE5 #define KEY_PGUP 0xE6 #define KEY_PGDN 0xE7 #define KEY_INS 0xE8 #define KEY_DEL 0xE9 /* This is i8042reg.h + kbdreg.h from NetBSD. */ #define KBSTATP 0x64 // kbd controller status port(I) #define KBS_DIB 0x01 // kbd data in buffer #define KBS_IBF 0x02 // kbd input buffer low #define KBS_WARM 0x04 // kbd input buffer low #define BS_OCMD 0x08 // kbd output buffer has command #define KBS_NOSEC 0x10 // kbd security lock not engaged #define KBS_TERR 0x20 // kbd transmission error #define KBS_RERR 0x40 // kbd receive error #define KBS_PERR 0x80 // kbd parity error #define KBCMDP 0x64 // kbd controller port(O) #define KBC_RAMREAD 0x20 // read from RAM #define KBC_RAMWRITE 0x60 // write to RAM #define KBC_AUXDISABLE 0xa7 // disable auxiliary port #define KBC_AUXENABLE 0xa8 // enable auxiliary port #define KBC_AUXTEST 0xa9 // test auxiliary port #define KBC_KBDECHO 0xd2 // echo to keyboard port #define KBC_AUXECHO 0xd3 // echo to auxiliary port #define KBC_AUXWRITE 0xd4 // write to auxiliary port #define KBC_SELFTEST 0xaa // start self-test #define KBC_KBDTEST 0xab // test keyboard port #define KBC_KBDDISABLE 0xad // disable keyboard port #define KBC_KBDENABLE 0xae // enable keyboard port #define KBC_PULSE0 0xfe // pulse output bit 0 #define KBC_PULSE1 0xfd // pulse output bit 1 #define KBC_PULSE2 0xfb // pulse output bit 2 #define KBC_PULSE3 0xf7 // pulse output bit 3 #define KBDATAP 0x60 // kbd data port(I) #define KBOUTP 0x60 // kbd data port(O) #define K_RDCMDBYTE 0x20 #define K_LDCMDBYTE 0x60 #define KC8_TRANS 0x40 // convert to old scan codes #define KC8_MDISABLE 0x20 // disable mouse #define KC8_KDISABLE 0x10 // disable keyboard #define KC8_IGNSEC 0x08 // ignore security lock #define KC8_CPU 0x04 // exit from protected mode reset #define KC8_MENABLE 0x02 // enable mouse interrupt #define KC8_KENABLE 0x01 // enable keyboard interrupt #define CMDBYTE (KC8_TRANS|KC8_CPU|KC8_MENABLE|KC8_KENABLE) /* keyboard commands */ #define KBC_RESET 0xFF // reset the keyboard #define KBC_RESEND 0xFE // request the keyboard resend the last byte #define KBC_SETDEFAULT 0xF6 // resets keyboard to its power-on defaults #define KBC_DISABLE 0xF5 // as per KBC_SETDEFAULT, but also disable key scanning #define KBC_ENABLE 0xF4 // enable key scanning #define KBC_TYPEMATIC 0xF3 // set typematic rate and delay #define KBC_SETTABLE 0xF0 // set scancode translation table #define KBC_MODEIND 0xED // set mode indicators(i.e. LEDs) #define KBC_ECHO 0xEE // request an echo from the keyboard /* keyboard responses */ #define KBR_EXTENDED 0xE0 // extended key sequence #define KBR_RESEND 0xFE // needs resend of command #define KBR_ACK 0xFA // received a valid command #define KBR_OVERRUN 0x00 // flooded #define KBR_FAILURE 0xFD // diagnosic failure #define KBR_BREAK 0xF0 // break code prefix - sent on key release #define KBR_RSTDONE 0xAA // reset complete #define KBR_ECHO 0xEE // echo response #endif /* !__KERN_DRIVER_KBDREG_H__ */