#ifndef _KEYBOARD_H_ #define _KEYBOARD_H_ 1 #if defined(__cplusplus) extern "C" { #endif typedef struct Keyboardctl Keyboardctl; struct Keyboardctl { struct 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 */ /* KF|1, KF|2, ..., KF|0xC is F1, F2, ..., F12 */ Khome= KF|0x0D, Kup= KF|0x0E, Kpgup= KF|0x0F, Kprint= KF|0x10, Kleft= KF|0x11, Kright= KF|0x12, Kdown= 0x80, Kview= 0x80, Kpgdown= KF|0x13, Kins= KF|0x14, Kend= '\r', /* [sic] */ Kalt= KF|0x15, Kshift= KF|0x16, Kctl= KF|0x17 }; #if defined(__cplusplus) } #endif #endif