xref: /plan9/sys/include/keyboard.h (revision 50e5f38d649a06ef8aef42696e09b6c4c5964957)
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