|
L4Re - L4 Runtime Environment
|
Inheritance diagram for L4::Irq:
Collaboration diagram for L4::Irq: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... | |
Public Member Functions inherited from L4::Triggerable | |
| l4_msgtag_t | trigger (l4_utcb_t *utcb=l4_utcb()) throw () |
| Trigger. More... | |
Public Member Functions inherited from L4::Irq_eoi | |
| 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... | |
Public Member Functions inherited from L4::Rcv_endpoint | |
| l4_msgtag_t | bind_thread (Ipc::Opt< Ipc::Cap< Thread > > t, l4_umword_t label) |
| Bind a thread to an IPC receive endpoint. More... | |
Public Member Functions inherited from L4::Kobject | |
| 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 | |
Protected Types inherited from L4::Kobject_2t< Irq, Triggerable, Rcv_endpoint, L4_PROTO_IRQ_SENDER > | |
| 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... | |
Protected Types inherited from L4::Kobject_t< Triggerable, Irq_eoi, L4_PROTO_IRQ > | |
| 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. | |
Protected Types inherited from L4::Kobject_t< Rcv_endpoint, Kobject, L4_PROTO_KOBJECT, Type_info::Demand_t< 1 > > | |
| 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. | |
Protected Member Functions inherited from L4::Kobject_2t< Irq, Triggerable, Rcv_endpoint, L4_PROTO_IRQ_SENDER > | |
| L4::Cap< Class > | c () const |
| Get the capability to ourselves. More... | |
Protected Member Functions inherited from L4::Kobject_t< Triggerable, Irq_eoi, L4_PROTO_IRQ > | |
| L4::Cap< Class > | c () const |
| Get the capability to ourselves. | |
Protected Member Functions inherited from L4::Kobject_t< Rcv_endpoint, Kobject, L4_PROTO_KOBJECT, Type_info::Demand_t< 1 > > | |
| L4::Cap< Class > | c () const |
| Get the capability to ourselves. | |
Protected Member Functions inherited from L4::Kobject | |
| l4_cap_idx_t | cap () const throw () |
| Return capability selector. More... | |
Static Protected Member Functions inherited from L4::Kobject_2t< Irq, Triggerable, Rcv_endpoint, L4_PROTO_IRQ_SENDER > | |
| static void | __check_protocols__ () |
Static Protected Member Functions inherited from L4::Kobject_t< Triggerable, Irq_eoi, L4_PROTO_IRQ > | |
| static void | __check_protocols__ () |
| Helper to check for protocol conflicts. | |
Static Protected Member Functions inherited from L4::Kobject_t< Rcv_endpoint, Kobject, L4_PROTO_KOBJECT, Type_info::Demand_t< 1 > > | |
| 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().
Here is the call graph for this function:
|
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().
Here is the call graph for this function:
|
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().
Here is the call graph for this function:
|
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().
Here is the call graph for this function:
|
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().
Here is the call graph for this function: