L4Re - L4 Runtime Environment
|
Public Member Functions | |
l4_msgtag_t | attach (l4_umword_t label, Cap< Thread > const &thread=Cap< Thread >::Invalid, l4_utcb_t *utcb=l4_utcb()) throw () |
Attach a thread to this interrupt. More... | |
l4_msgtag_t | detach (l4_utcb_t *utcb=l4_utcb()) throw () |
Detach from this interrupt. More... | |
l4_msgtag_t | receive (l4_timeout_t timeout=L4_IPC_NEVER, l4_utcb_t *utcb=l4_utcb()) throw () |
Unmask and wait for this IRQ. More... | |
l4_msgtag_t | wait (l4_umword_t *label, l4_timeout_t timeout=L4_IPC_NEVER, l4_utcb_t *utcb=l4_utcb()) throw () |
Unmask IRQ and (open) wait for any message. More... | |
l4_msgtag_t | unmask (l4_utcb_t *utcb=l4_utcb()) throw () |
Unmask IRQ. More... | |
![]() | |
l4_msgtag_t | trigger (l4_utcb_t *utcb=l4_utcb()) throw () |
Trigger. More... | |
![]() | |
l4_msgtag_t | unmask (unsigned irqnum, l4_umword_t *label=0, l4_timeout_t to=L4_IPC_NEVER, l4_utcb_t *utcb=l4_utcb()) throw () |
Acknowledge the given interrupt line. More... | |
![]() | |
l4_msgtag_t | bind_thread (Ipc::Opt< Ipc::Cap< Thread > > t, l4_umword_t label) |
Bind a thread to an IPC receive endpoint. More... | |
![]() | |
l4_msgtag_t | dec_refcnt (l4_mword_t diff, l4_utcb_t *utcb=l4_utcb()) |
Decrement the in kernel reference counter for the object. More... | |
Additional Inherited Members | |
![]() | |
typedef Irq | Class |
The target interface type (inheriting from Kobject_t) More... | |
typedef Typeid::Iface< PROTO, Irq > | __Iface |
The interface description for the derived class. More... | |
typedef Typeid::Merge_list< Typeid::Iface_list< __Iface >, Typeid::Merge_list< typename Triggerable ::__Iface_list, typename Rcv_endpoint ::__Iface_list > > | __Iface_list |
The list of all RPC interfaces provided directly or through inheritance. More... | |
![]() | |
typedef Triggerable | Class |
The target interface type (inheriting from Kobject_t) | |
typedef Typeid::Iface< PROTO, Triggerable > | __Iface |
The interface description for the derived class. | |
typedef Typeid::Merge_list< Typeid::Iface_list< __Iface >, typename Irq_eoi ::__Iface_list > | __Iface_list |
The list of all RPC interfaces provided directly or through inheritance. | |
![]() | |
typedef Rcv_endpoint | Class |
The target interface type (inheriting from Kobject_t) | |
typedef Typeid::Iface< PROTO, Rcv_endpoint > | __Iface |
The interface description for the derived class. | |
typedef Typeid::Merge_list< Typeid::Iface_list< __Iface >, typename Kobject ::__Iface_list > | __Iface_list |
The list of all RPC interfaces provided directly or through inheritance. | |
![]() | |
L4::Cap< Class > | c () const |
Get the capability to ourselves. More... | |
![]() | |
L4::Cap< Class > | c () const |
Get the capability to ourselves. | |
![]() | |
L4::Cap< Class > | c () const |
Get the capability to ourselves. | |
![]() | |
l4_cap_idx_t | cap () const throw () |
Return capability selector. More... | |
![]() | |
static void | __check_protocols__ () |
![]() | |
static void | __check_protocols__ () |
Helper to check for protocol conflicts. | |
![]() | |
static void | __check_protocols__ () |
Helper to check for protocol conflicts. | |
C++ Irq interface.
The Irq class provides access to abstract interrupts provided by the microkernel. Interrupts may be
Irq objects can be created using a factory, see the L4::Factory API (L4::Factory::create()).
For the C interface refer to the IRQs API for an overview.
|
inline |
Attach a thread to this interrupt.
label | Identifier of the IRQ (protected label used for messages) |
thread | Capability of the thread to attach the IRQ to. |
utcb | UTCB to be used for this operation, usually the UTCB of the calling thread. |
The protected label is stored in the kernel and sent to the attached thread with the IRQ-triggered notification. It allows the receiver thread to securely identify the IRQ.
Definition at line 138 of file irq.
References L4::Kobject::cap(), and l4_irq_attach_u().
|
inline |
Detach from this interrupt.
utcb | UTCB to be used for this operation, usually the UTCB of the calling thread. |
Definition at line 156 of file irq.
References L4::Kobject::cap(), and l4_irq_detach_u().
|
inline |
Unmask and wait for this IRQ.
timeout | Timeout. |
utcb | UTCB to be used for this operation, usually the UTCB of the calling thread. |
Definition at line 171 of file irq.
References L4::Kobject::cap(), and l4_irq_receive_u().
|
inline |
Unmask IRQ.
utcb | UTCB to be used for this operation, usually the UTCB of the calling thread. |
Irq::wait() and Irq::receive() operations already include an unmask(), do not use an extra unmask() in these cases.
Definition at line 207 of file irq.
References L4_IPC_NEVER, and L4::Irq_eoi::unmask().
|
inline |
Unmask IRQ and (open) wait for any message.
label | The protected label shall be received here. |
timeout | Timeout. |
utcb | UTCB to be used for this operation, usually the UTCB of the calling thread. |
Definition at line 184 of file irq.
References L4::Irq_eoi::unmask().