3 * \brief Event C interface.
6 * (c) 2008-2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>,
7 * Alexander Warg <warg@os.inf.tu-dresden.de>
8 * economic rights: Technische Universität Dresden (Germany)
10 * This file is part of TUD:OS and distributed under the terms of the
11 * GNU General Public License 2.
12 * Please see the COPYING-GPL-2 file for details.
14 * As a special exception, you may use this file as part of a free software
15 * library without restriction. Specifically, if other files instantiate
16 * templates or use macros or inline functions from this file, or you compile
17 * this file and link it with other files to produce an executable, this
18 * file does not by itself cause the resulting executable to be covered by
19 * the GNU General Public License. This exception does not however
20 * invalidate any other reasons why the executable file might be covered by
21 * the GNU General Public License.
26 * \defgroup api_l4re_c_event Event interface
28 * \brief Event C interface.
31 #include <l4/sys/types.h>
32 #include <l4/re/c/dataspace.h>
33 #include <l4/re/event.h>
38 * \brief Event structure used in buffer.
42 long long time; /**< Time stamp of the event */
43 unsigned short type; /**< Type of the event */
44 unsigned short code; /**< Code of the event */
45 int value; /**< Value of the event */
46 l4_umword_t stream_id; /**< Stream ID */
50 * \brief Get an event signal buffer.
51 * \ingroup api_l4re_c_event
53 * \param server Server to talk to.
54 * \param ds Buffer to event data.
56 * \return 0 for success, <0 on error
58 * \see L4Re::Event::get_buffer
61 l4re_event_get_buffer(const l4_cap_idx_t server,
62 const l4re_ds_t ds) L4_NOTHROW;
65 * \brief Get number of streams
66 * \ingroup api_l4re_c_event
68 * \param server Server to talk to.
70 * \return 0 for success, <0 on error
72 * \see L4Re::Event::get_num_streams
75 l4re_event_get_num_streams(const l4_cap_idx_t server) L4_NOTHROW;
78 * \brief Get information on a stream
79 * \ingroup api_l4re_c_event
81 * \param server Server to talk to.
82 * \param idx Index value.
83 * \retval info Information buffer.
85 * \return 0 for success, <0 on error
87 * \see L4Re::Event::get_stream_info
90 l4re_event_get_stream_info(const l4_cap_idx_t server,
91 int idx, l4re_event_stream_info_t *info) L4_NOTHROW;
94 * \brief Get info for a stream given a stream id
95 * \ingroup api_l4re_c_event
97 * \param server Server to talk to.
98 * \param stream_id Stream ID.
99 * \retval info Information buffer.
101 * \return 0 for success, <0 on error
103 * \see L4Re::Event::get_stream_info_for_id
106 l4re_event_get_stream_info_for_id(const l4_cap_idx_t server,
107 l4_umword_t stream_id,
108 l4re_event_stream_info_t *info) L4_NOTHROW;
111 * \brief Get Axis information for a stream.
112 * \ingroup api_l4re_c_event
114 * \param server Server to talk to.
115 * \param naxes Number of axes.
116 * \retval axis Number of axes.
117 * \retval info Information buffer.
119 * \return 0 for success, <0 on error
121 * \see L4Re::Event::get_axis_info
124 l4re_event_get_axis_info(const l4_cap_idx_t server, l4_umword_t id,
125 unsigned naxes, unsigned *axis,
126 l4re_event_absinfo_t *info) L4_NOTHROW;