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