xref: /plan9/sys/src/cmd/usb/kb/hid.h (revision 906943f9f6b8411972abb5e3a03ed19f74be7ccc)
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