183030dd5SDavid du Colombier /* 283030dd5SDavid du Colombier * USB keyboard/mouse constants 383030dd5SDavid du Colombier */ 483030dd5SDavid du Colombier enum { 5*906943f9SDavid du Colombier 6*906943f9SDavid du Colombier Stack = 32 * 1024, 7*906943f9SDavid du Colombier 883030dd5SDavid du Colombier /* HID class subclass protocol ids */ 983030dd5SDavid du Colombier PtrCSP = 0x020103, /* mouse.boot.hid */ 1083030dd5SDavid du Colombier KbdCSP = 0x010103, /* keyboard.boot.hid */ 1183030dd5SDavid du Colombier 1283030dd5SDavid du Colombier /* Requests */ 13*906943f9SDavid du Colombier Getproto = 0x03, 14*906943f9SDavid du Colombier Setproto = 0x0b, 1583030dd5SDavid du Colombier 1683030dd5SDavid du Colombier /* protocols for SET_PROTO request */ 17*906943f9SDavid du Colombier Bootproto = 0, 18*906943f9SDavid du Colombier Reportproto = 1, 1983030dd5SDavid du Colombier }; 2083030dd5SDavid du Colombier 2183030dd5SDavid du Colombier enum { 2283030dd5SDavid du Colombier /* keyboard modifier bits */ 2383030dd5SDavid du Colombier Mlctrl = 0, 2483030dd5SDavid du Colombier Mlshift = 1, 2583030dd5SDavid du Colombier Mlalt = 2, 2683030dd5SDavid du Colombier Mlgui = 3, 2783030dd5SDavid du Colombier Mrctrl = 4, 2883030dd5SDavid du Colombier Mrshift = 5, 2983030dd5SDavid du Colombier Mralt = 6, 3083030dd5SDavid du Colombier Mrgui = 7, 3183030dd5SDavid du Colombier 3283030dd5SDavid du Colombier /* masks for byte[0] */ 3383030dd5SDavid du Colombier Mctrl = 1<<Mlctrl | 1<<Mrctrl, 3483030dd5SDavid du Colombier Mshift = 1<<Mlshift | 1<<Mrshift, 3583030dd5SDavid du Colombier Malt = 1<<Mlalt | 1<<Mralt, 3683030dd5SDavid du Colombier Mcompose = 1<<Mlalt, 3783030dd5SDavid du Colombier Maltgr = 1<<Mralt, 3883030dd5SDavid du Colombier Mgui = 1<<Mlgui | 1<<Mrgui, 3983030dd5SDavid du Colombier 4083030dd5SDavid du Colombier MaxAcc = 3, /* max. ptr acceleration */ 4183030dd5SDavid du Colombier PtrMask= 0xf, /* 4 buttons: should allow for more. */ 4283030dd5SDavid du Colombier 4383030dd5SDavid du Colombier }; 4483030dd5SDavid du Colombier 4583030dd5SDavid du Colombier /* 4683030dd5SDavid du Colombier * Plan 9 keyboard driver constants. 4783030dd5SDavid du Colombier */ 4883030dd5SDavid du Colombier enum { 4983030dd5SDavid du Colombier /* Scan codes (see kbd.c) */ 5083030dd5SDavid du Colombier SCesc1 = 0xe0, /* first of a 2-character sequence */ 5183030dd5SDavid du Colombier SCesc2 = 0xe1, 5283030dd5SDavid du Colombier SClshift = 0x2a, 5383030dd5SDavid du Colombier SCrshift = 0x36, 5483030dd5SDavid du Colombier SCctrl = 0x1d, 5583030dd5SDavid du Colombier SCcompose = 0x38, 5683030dd5SDavid du Colombier Keyup = 0x80, /* flag bit */ 5783030dd5SDavid du Colombier Keymask = 0x7f, /* regular scan code bits */ 5883030dd5SDavid du Colombier }; 5983030dd5SDavid du Colombier 60*906943f9SDavid du Colombier int kbmain(Dev *d, int argc, char*argv[]); 61