23 #include <l4/re/event> 24 #include <l4/re/event-sys.h> 29 namespace L4Re {
namespace Util {
35 template<
typename PAYLOAD >
46 void *
buf()
const throw() {
return _buf; }
81 return rm->detach(_buf, &ds);
91 template<
typename PAYLOAD >
102 template<
typename CB,
typename D >
123 template<
typename CB,
typename D >
126 CB
const &cb, D data = D())
140 foreach_available_event(cb, data);
void free()
Free the entry.
l4_umword_t l4_ipc_error(l4_msgtag_t tag, l4_utcb_t *utcb) L4_NOTHROW
Get the error code for an object invocation.
void * buf() const
Return the buffer.
#define L4_IPC_NEVER
never timeout
Search for a suitable address range.
void foreach_available_event(CB const &cb, D data=D())
Call function on every available event.
l4_cap_idx_t cap() const
Return capability selector.
Cap< T > make_cap_rw(L4::Cap< T > cap)
Make an L4::Ipc::Cap<T> for the given capability with L4_CAP_FPAGE_RW rights.
void process(L4::Cap< L4::Irq > irq, L4::Cap< L4::Thread > thread, CB const &cb, D data=D())
Continuously wait for events and process them.
long attach(L4::Cap< L4Re::Dataspace > ds, L4::Cap< L4Re::Rm > rm)
Attach event buffer from address space.
l4_utcb_t * l4_utcb(void) L4_NOTHROW L4_PURE
Get the UTCB address.
An event buffer consumer.
long l4_error(l4_msgtag_t tag) L4_NOTHROW
Return error code of a system call return message tag.
Event structure used in buffer.
l4_msgtag_t l4_irq_receive(l4_cap_idx_t irq, l4_timeout_t to) L4_NOTHROW
Unmask and wait for specified IRQ.
unsigned long l4_addr_t
Address type.
Event_buffer utility class.
long detach(L4::Cap< L4Re::Rm > rm)
Detach event buffer from address space.
l4_msgtag_t bind_thread(Ipc::Opt< Ipc::Cap< Thread > > t, l4_umword_t label)
Bind a thread to an IPC receive endpoint.