Go to the documentation of this file.
26 #ifndef __XEN_PUBLIC_IO_KBDIF_H__
27 #define __XEN_PUBLIC_IO_KBDIF_H__
36 #define XENKBD_TYPE_MOTION 1
39 #define XENKBD_TYPE_KEY 3
46 #define XENKBD_TYPE_POS 4
68 #define XENKBD_IN_EVENT_SIZE 40
86 #define XENKBD_OUT_EVENT_SIZE 40
95 #define XENKBD_IN_RING_SIZE 2048
96 #define XENKBD_IN_RING_LEN (XENKBD_IN_RING_SIZE / XENKBD_IN_EVENT_SIZE)
97 #define XENKBD_IN_RING_OFFS 1024
98 #define XENKBD_IN_RING(page) \
99 ((union xenkbd_in_event *)((char *)(page) + XENKBD_IN_RING_OFFS))
100 #define XENKBD_IN_RING_REF(page, idx) \
101 (XENKBD_IN_RING((page))[(idx) % XENKBD_IN_RING_LEN])
103 #define XENKBD_OUT_RING_SIZE 1024
104 #define XENKBD_OUT_RING_LEN (XENKBD_OUT_RING_SIZE / XENKBD_OUT_EVENT_SIZE)
105 #define XENKBD_OUT_RING_OFFS (XENKBD_IN_RING_OFFS + XENKBD_IN_RING_SIZE)
106 #define XENKBD_OUT_RING(page) \
107 ((union xenkbd_out_event *)((char *)(page) + XENKBD_OUT_RING_OFFS))
108 #define XENKBD_OUT_RING_REF(page, idx) \
109 (XENKBD_OUT_RING((page))[(idx) % XENKBD_OUT_RING_LEN])