ref: cea88957a555d8989f34e0ed9b14f261ea6b7cfa
dir: /include/keyboard.h/
typedef struct Keyboardctl Keyboardctl; typedef struct Channel Channel; struct Keyboardctl { Channel *c; /* chan(Rune)[20] */ char *file; int consfd; /* to cons file */ int ctlfd; /* to ctl file */ int pid; /* of slave proc */ }; extern Keyboardctl* initkeyboard(char*); extern int ctlkeyboard(Keyboardctl*, char*); extern void closekeyboard(Keyboardctl*); enum { KF= 0xF000, /* Rune: beginning of private Unicode space */ Spec= 0xF800, PF= Spec|0x20, /* num pad function key */ Kview= Spec|0x00, /* view (shift window up) */ /* KF|1, KF|2, ..., KF|0xC is F1, F2, ..., F12 */ Khome= KF|0x0D, Kup= KF|0x0E, Kdown= Kview, Kpgup= KF|0x0F, Kprint= KF|0x10, Kleft= KF|0x11, Kright= KF|0x12, Kpgdown= KF|0x13, Kins= KF|0x14, Kalt= KF|0x15, Kshift= KF|0x16, Kctl= KF|0x17, Kend= KF|0x18, Kscroll= KF|0x19, Kscrolloneup= KF|0x20, Kscrollonedown= KF|0x21, /* multimedia keys - no refunds */ Ksbwd= KF|0x22, Ksfwd= KF|0x23, Kpause= KF|0x24, Kvoldn= KF|0x25, Kvolup= KF|0x26, Kmute= KF|0x27, Ksoh= 0x01, Kstx= 0x02, Ketx= 0x03, Keof= 0x04, Kenq= 0x05, Kack= 0x06, Kbs= 0x08, Knack= 0x15, Ketb= 0x17, Kdel= 0x7f, Kesc= 0x1b, Kbreak= Spec|0x61, Kcaps= Spec|0x64, Knum= Spec|0x65, Kmiddle= Spec|0x66, Kaltgr= Spec|0x67, Kmod4= Spec|0x68, Kmouse= Spec|0x100, };