L4Re - L4 Runtime Environment
event.h
Go to the documentation of this file.
1 
5 /*
6  * (c) 2009 Alexander Warg <warg@os.inf.tu-dresden.de>
7  * economic rights: Technische Universit├Ąt Dresden (Germany)
8  *
9  * This file is part of TUD:OS and distributed under the terms of the
10  * GNU General Public License 2.
11  * Please see the COPYING-GPL-2 file for details.
12  *
13  * As a special exception, you may use this file as part of a free software
14  * library without restriction. Specifically, if other files instantiate
15  * templates or use macros or inline functions from this file, or you compile
16  * this file and link it with other files to produce an executable, this
17  * file does not by itself cause the resulting executable to be covered by
18  * the GNU General Public License. This exception does not however
19  * invalidate any other reasons why the executable file might be covered by
20  * the GNU General Public License.
21  */
22 #pragma once
23 
24 #include <l4/sys/compiler.h>
25 #include <l4/sys/l4int.h>
26 
27 typedef struct L4_EXPORT_TYPE l4re_event_stream_id_t
28 {
29  l4_uint16_t bustype;
30  l4_uint16_t vendor;
31  l4_uint16_t product;
32  l4_uint16_t version;
33 } l4re_event_stream_id_t;
34 
35 typedef struct L4_EXPORT_TYPE l4re_event_absinfo_t
36 {
37  l4_int32_t value;
40  l4_int32_t fuzz;
41  l4_int32_t flat;
42  l4_int32_t resolution;
43 } l4re_event_absinfo_t;
44 
45 enum l4re_event_stream_max_values_t
46 {
47  L4RE_EVENT_EV_MAX = 0x1f,
48  L4RE_EVENT_KEY_MAX = 0x1ff,
49  L4RE_EVENT_REL_MAX = 0xf,
50  L4RE_EVENT_ABS_MAX = 0x3f,
51  L4RE_EVENT_PROP_MAX = 0x1f,
52  L4RE_EVENT_SW_MAX = 0xf, // should be >= L4RE_SW_MAX
53 };
54 
55 enum l4re_event_stream_props_t
56 {
57  L4RE_EVENT_STREAM_CALIBRATE = 0x001,
58 };
59 
60 
61 #define __UNUM_B(x) ((x+1) + sizeof(unsigned long)*8 - 1) / (sizeof(unsigned long)*8)
62 
63 typedef struct L4_EXPORT_TYPE l4re_event_stream_info_t
64 {
65  l4_umword_t stream_id;
66  char name[32];
67  char phys[32];
68  l4re_event_stream_id_t id;
69 
70  unsigned long propbits[__UNUM_B(L4RE_EVENT_PROP_MAX)];
71 
72  unsigned long evbits[__UNUM_B(L4RE_EVENT_EV_MAX)];
73  unsigned long keybits[__UNUM_B(L4RE_EVENT_KEY_MAX)];
74  unsigned long relbits[__UNUM_B(L4RE_EVENT_REL_MAX)];
75  unsigned long absbits[__UNUM_B(L4RE_EVENT_ABS_MAX)];
76  unsigned long swbits[__UNUM_B(L4RE_EVENT_SW_MAX)];
77 
78 } l4re_event_stream_info_t;
79 
80 typedef struct L4_EXPORT_TYPE l4re_event_stream_state_t
81 {
82  unsigned long keybits[__UNUM_B(L4RE_EVENT_KEY_MAX)];
83  unsigned long swbits[__UNUM_B(L4RE_EVENT_SW_MAX)];
84 } l4re_event_stream_state_t;
85 
86 #undef __UNUM_B
87 
signed int l4_int32_t
Signed 32bit value.
Definition: l4int.h:39
unsigned short int l4_uint16_t
Unsigned 16bit value.
Definition: l4int.h:38
L4 compiler related defines.
T1 max(T1 a, T1 b)
Get the maximum of a and b.
Definition: minmax:46
unsigned long l4_umword_t
Unsigned machine word.
Definition: l4int.h:52
T1 min(T1 a, T1 b)
Get the minimum of a and b.
Definition: minmax:35