1*8ccd4a63SDavid du Colombier #ifdef PLAN9 2*8ccd4a63SDavid du Colombier #pragma src "/sys/src/libdraw" 3*8ccd4a63SDavid du Colombier #pragma lib "libdraw.a" 4*8ccd4a63SDavid du Colombier #endif 5*8ccd4a63SDavid du Colombier 6*8ccd4a63SDavid du Colombier typedef struct Keyboardctl Keyboardctl; 7*8ccd4a63SDavid du Colombier typedef struct Channel Channel; 8*8ccd4a63SDavid du Colombier 9*8ccd4a63SDavid du Colombier struct Keyboardctl 10*8ccd4a63SDavid du Colombier { 11*8ccd4a63SDavid du Colombier Channel *c; /* chan(Rune)[20] */ 12*8ccd4a63SDavid du Colombier 13*8ccd4a63SDavid du Colombier char *file; 14*8ccd4a63SDavid du Colombier int consfd; /* to cons file */ 15*8ccd4a63SDavid du Colombier int ctlfd; /* to ctl file */ 16*8ccd4a63SDavid du Colombier int pid; /* of slave proc */ 17*8ccd4a63SDavid du Colombier }; 18*8ccd4a63SDavid du Colombier 19*8ccd4a63SDavid du Colombier 20*8ccd4a63SDavid du Colombier extern Keyboardctl* initkeyboard(char*); 21*8ccd4a63SDavid du Colombier extern int ctlkeyboard(Keyboardctl*, char*); 22*8ccd4a63SDavid du Colombier extern void closekeyboard(Keyboardctl*); 23*8ccd4a63SDavid du Colombier 24*8ccd4a63SDavid du Colombier enum { 25*8ccd4a63SDavid du Colombier KF= 0xF000, /* Rune: beginning of private Unicode space */ 26*8ccd4a63SDavid du Colombier Spec= 0xF800, 27*8ccd4a63SDavid du Colombier /* KF|1, KF|2, ..., KF|0xC is F1, F2, ..., F12 */ 28*8ccd4a63SDavid du Colombier Khome= KF|0x0D, 29*8ccd4a63SDavid du Colombier Kup= KF|0x0E, 30*8ccd4a63SDavid du Colombier Kpgup= KF|0x0F, 31*8ccd4a63SDavid du Colombier Kprint= KF|0x10, 32*8ccd4a63SDavid du Colombier Kleft= KF|0x11, 33*8ccd4a63SDavid du Colombier Kright= KF|0x12, 34*8ccd4a63SDavid du Colombier Kdown= Spec|0x00, 35*8ccd4a63SDavid du Colombier Kview= Spec|0x00, 36*8ccd4a63SDavid du Colombier Kpgdown= KF|0x13, 37*8ccd4a63SDavid du Colombier Kins= KF|0x14, 38*8ccd4a63SDavid du Colombier Kend= KF|0x18, 39*8ccd4a63SDavid du Colombier 40*8ccd4a63SDavid du Colombier Kalt= KF|0x15, 41*8ccd4a63SDavid du Colombier Kshift= KF|0x16, 42*8ccd4a63SDavid du Colombier Kctl= KF|0x17, 43*8ccd4a63SDavid du Colombier }; 44*8ccd4a63SDavid du Colombier 45