#include <l4/sys/types.h>
Go to the source code of this file.
Data Structures | |
| struct | omega0_irqdesc_struct_t |
| Omega0 IRQ descriptor, bitfields. More... | |
| union | omega0_irqdesc_t |
| Omega0 IRQ descriptor. More... | |
| struct | omega0_request_struct_t |
| Omega0 request type, bitfields. More... | |
| union | omega0_request_t |
| Omega0 request type. More... | |
Defines | |
| #define | OMEGA0_WAIT |
| #define | OMEGA0_CONSUME |
| #define | OMEGA0_MASK |
| #define | OMEGA0_UNMASK |
| #define | OMEGA0_RQ(action, param) ((omega0_request_t){i:(param)|(action)}) |
Typedefs | |
| typedef L4_CV void(* | omega0_alien_handler_t )(l4_threadid_t alien, l4_umword_t d0, l4_umword_t d1) |
| Omega0 alien handler type. | |
Functions | |
| L4_CV int | omega0_attach (omega0_irqdesc_t desc) |
| Attach to an irq line. | |
| L4_CV int | omega0_detach (omega0_irqdesc_t desc) |
| Detach from an irq line. | |
| L4_CV int | omega0_pass (omega0_irqdesc_t desc, l4_threadid_t new_driver) |
| Pass the right to attach to an IRQ line to another thread. | |
| L4_CV int | omega0_request (int handle, omega0_request_t action) |
| Request for certain actions. | |
| L4_CV int | omega0_request_timeout (int handle, omega0_request_t action, l4_timeout_t timeout) |
| Request for certain actions with timeout. | |
| L4_CV int | omega0_first (void) |
| Iterator: return the first available irq line. | |
| L4_CV int | omega0_next (int irq_num) |
| Iterator: return next available irq line. | |
| L4_CV omega0_alien_handler_t | omega0_set_alien_handler (omega0_alien_handler_t handler) |
| Set an alien IPC handler
If a request (omega0_request()) with a set waiting-flag is not answered by the omega0 server but by someone else (the alien), a callback may be called. Therefore, first register the handler using this function and call omega0_request() then. The alien IPC must be a short IPC without any mappings. The alien handler receives the alien thread id and the 2 (two) dwords. | |
Variables | |
| omega0_alien_handler_t | omega0_alien_handler |
Definition in file client.h.
| #define OMEGA0_CONSUME |
Value:
(((omega0_request_t){s: \ (omega0_request_struct_t){consume:1}}).i)
| #define OMEGA0_MASK |
Value:
(((omega0_request_t){s: \ (omega0_request_struct_t){mask:1}}).i)
| #define OMEGA0_RQ | ( | action, | |||
| param | ) | ((omega0_request_t){i:(param)|(action)}) |
| #define OMEGA0_UNMASK |
Value:
(((omega0_request_t){s: \ (omega0_request_struct_t){unmask:1}}).i)
| #define OMEGA0_WAIT |
Value:
(((omega0_request_t){s: \ (omega0_request_struct_t){wait:1}}).i)
| L4_CV int omega0_next | ( | int | irq_num | ) |
Iterator: return next available irq line.
| irq_num | return value of omega0_first() or a omega0_next() |
| 0 | no more lines are available | |
| >0 | next existing irq line. |
1.5.6