27class Event_svr :
public Icu_cap_array_svr<SVR>
30 typedef Icu_cap_array_svr<SVR> Icu_svr;
34 typename Icu_svr::Irq _irq;
37 Event_svr() : Icu_svr(1, &_irq) {}
40 L4_RPC_LEGACY_USING(Icu_svr);
45 static_cast<SVR*
>(
this)->reset_event_buffer();
50 l4_ret_t op_get_num_streams(L4Re::Event::Rights)
51 {
return static_cast<SVR*
>(
this)->get_num_streams(); }
53 l4_ret_t op_get_stream_info(L4Re::Event::Rights,
int idx, Event_stream_info &info)
54 {
return static_cast<SVR*
>(
this)->get_stream_info(idx, &info); }
57 Event_stream_info &info)
58 {
return static_cast<SVR*
>(
this)->get_stream_info_for_id(
id, &info); }
61 L4::Ipc::Array_in_buf<unsigned, unsigned long>
const &axes,
62 L4::Ipc::Array_ref<Event_absinfo, unsigned long> &info)
64 unsigned naxes = cxx::min<unsigned>(L4RE_ABS_MAX, axes.
length);
68 Event_absinfo _info[L4RE_ABS_MAX];
69 int r =
static_cast<SVR*
>(
this)->get_axis_info(
id, naxes, axes.
data, _info);
73 for (
unsigned i = 0; i < naxes; ++i)
74 info.data[i] = _info[i];
81 Event_stream_state &state)
82 {
return static_cast<SVR*
>(
this)->get_stream_state_for_id(stream_id, &state); }
84 int get_num_streams()
const {
return 0; }
85 int get_stream_info(
int, L4Re::Event_stream_info *)
87 int get_stream_info_for_id(
l4_umword_t, L4Re::Event_stream_info *)
89 int get_axis_info(
l4_umword_t,
unsigned ,
unsigned const * ,
90 L4Re::Event_absinfo *)
92 int get_stream_state_for_id(
l4_umword_t, L4Re::Event_stream_state *)
@ L4_CAP_FPAGE_RW
Read and interface specific 'W' right for capability flexpages.