17dd7cddfSDavid du Colombier #pragma src "/sys/src/libdraw" 27dd7cddfSDavid du Colombier #pragma lib "libdraw.a" 37dd7cddfSDavid du Colombier 47dd7cddfSDavid du Colombier typedef struct Keyboardctl Keyboardctl; 57dd7cddfSDavid du Colombier typedef struct Channel Channel; 67dd7cddfSDavid du Colombier 77dd7cddfSDavid du Colombier struct Keyboardctl 87dd7cddfSDavid du Colombier { 97dd7cddfSDavid du Colombier Channel *c; /* chan(Rune)[20] */ 107dd7cddfSDavid du Colombier 117dd7cddfSDavid du Colombier char *file; 127dd7cddfSDavid du Colombier int consfd; /* to cons file */ 137dd7cddfSDavid du Colombier int ctlfd; /* to ctl file */ 147dd7cddfSDavid du Colombier int pid; /* of slave proc */ 157dd7cddfSDavid du Colombier }; 167dd7cddfSDavid du Colombier 177dd7cddfSDavid du Colombier 187dd7cddfSDavid du Colombier extern Keyboardctl* initkeyboard(char*); 197dd7cddfSDavid du Colombier extern int ctlkeyboard(Keyboardctl*, char*); 207dd7cddfSDavid du Colombier extern void closekeyboard(Keyboardctl*); 217dd7cddfSDavid du Colombier 227dd7cddfSDavid du Colombier enum { 237dd7cddfSDavid du Colombier KF= 0xF000, /* Rune: beginning of private Unicode space */ 2467493d07SDavid du Colombier Spec= 0xF800, 2559cc4ca5SDavid du Colombier /* KF|1, KF|2, ..., KF|0xC is F1, F2, ..., F12 */ 2659cc4ca5SDavid du Colombier Khome= KF|0x0D, 2759cc4ca5SDavid du Colombier Kup= KF|0x0E, 2859cc4ca5SDavid du Colombier Kpgup= KF|0x0F, 2959cc4ca5SDavid du Colombier Kprint= KF|0x10, 3059cc4ca5SDavid du Colombier Kleft= KF|0x11, 3159cc4ca5SDavid du Colombier Kright= KF|0x12, 3267493d07SDavid du Colombier Kdown= Spec|0x00, 3367493d07SDavid du Colombier Kview= Spec|0x00, 3459cc4ca5SDavid du Colombier Kpgdown= KF|0x13, 3559cc4ca5SDavid du Colombier Kins= KF|0x14, 36651dbb72SDavid du Colombier Kend= KF|0x18, 3759cc4ca5SDavid du Colombier 3859cc4ca5SDavid du Colombier Kalt= KF|0x15, 3959cc4ca5SDavid du Colombier Kshift= KF|0x16, 4059cc4ca5SDavid du Colombier Kctl= KF|0x17, 41*50e5f38dSDavid du Colombier 42*50e5f38dSDavid du Colombier Kbs= 0x08, 43*50e5f38dSDavid du Colombier Kdel= 0x7f, 44*50e5f38dSDavid du Colombier Kesc= 0x1b, 45*50e5f38dSDavid du Colombier Keof= 0x04, 467dd7cddfSDavid du Colombier }; 47