|
|
- #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__ */
-
|