#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. |