L4Re - L4 Runtime Environment
|
API related to the message tag data type. More...
Data Structures | |
struct | l4_msgtag_t |
Message tag data structure. More... | |
Typedefs | |
typedef struct l4_msgtag_t | l4_msgtag_t |
Message tag data structure. More... | |
Enumerations | |
enum | L4_platform_ctl_proto { L4_PROTO_PLATFORM_CTL = 0 } |
Predefined protocol type for messages to platform-control objects. More... | |
enum | l4_msgtag_protocol { L4_PROTO_NONE = 0, L4_PROTO_ALLOW_SYSCALL = 1, L4_PROTO_PF_EXCEPTION = 1, L4_PROTO_IRQ = -1L, L4_PROTO_PAGE_FAULT = -2L, L4_PROTO_PREEMPTION = -3L, L4_PROTO_SYS_EXCEPTION = -4L, L4_PROTO_EXCEPTION = -5L, L4_PROTO_SIGMA0 = -6L, L4_PROTO_IO_PAGE_FAULT = -8L, L4_PROTO_KOBJECT = -10L, L4_PROTO_TASK = -11L, L4_PROTO_THREAD = -12L, L4_PROTO_LOG = -13L, L4_PROTO_SCHEDULER = -14L, L4_PROTO_FACTORY = -15L, L4_PROTO_VM = -16L, L4_PROTO_DMA_SPACE = -17L, L4_PROTO_IRQ_SENDER = -18L, L4_PROTO_IRQ_MUX = -19L, L4_PROTO_SEMAPHORE = -20L, L4_PROTO_META = -21L, L4_PROTO_IOMMU = -22L, L4_PROTO_DEBUGGER = -23L, L4_PROTO_SMCCC = -24L } |
Message tag for IPC operations. More... | |
enum | l4_msgtag_flags { L4_MSGTAG_ERROR, L4_MSGTAG_TRANSFER_FPU, L4_MSGTAG_SCHEDULE, L4_MSGTAG_PROPAGATE, L4_MSGTAG_FLAGS } |
Flags for message tags. More... | |
Functions | |
l4_msgtag_t | l4_msgtag (long label, unsigned words, unsigned items, unsigned flags) L4_NOTHROW |
Create a message tag from the specified values. More... | |
long | l4_msgtag_label (l4_msgtag_t t) L4_NOTHROW |
Get the protocol of tag. More... | |
unsigned | l4_msgtag_words (l4_msgtag_t t) L4_NOTHROW |
Get the number of untyped words. More... | |
unsigned | l4_msgtag_items (l4_msgtag_t t) L4_NOTHROW |
Get the number of typed items. More... | |
unsigned | l4_msgtag_flags (l4_msgtag_t t) L4_NOTHROW |
Get the flags. More... | |
unsigned | l4_msgtag_has_error (l4_msgtag_t t) L4_NOTHROW |
Test for error indicator flag. More... | |
unsigned | l4_msgtag_is_page_fault (l4_msgtag_t t) L4_NOTHROW |
Test for page-fault protocol. More... | |
unsigned | l4_msgtag_is_preemption (l4_msgtag_t t) L4_NOTHROW |
Test for preemption protocol. More... | |
unsigned | l4_msgtag_is_sys_exception (l4_msgtag_t t) L4_NOTHROW |
Test for system-exception protocol. More... | |
unsigned | l4_msgtag_is_exception (l4_msgtag_t t) L4_NOTHROW |
Test for exception protocol. More... | |
unsigned | l4_msgtag_is_sigma0 (l4_msgtag_t t) L4_NOTHROW |
Test for sigma0 protocol. More... | |
unsigned | l4_msgtag_is_io_page_fault (l4_msgtag_t t) L4_NOTHROW |
Test for IO-page-fault protocol. More... | |
API related to the message tag data type.
typedef struct l4_msgtag_t l4_msgtag_t |
Message tag data structure.
Describes the details of an IPC operation, in particular which parts of the UTCB have to be transmitted, and also flags to enable real-time and FPU extensions.
The message tag also contains a user-defined label that could be used to specify a protocol ID. Some negative values are reserved for kernel protocols such as page faults and exceptions.
The type must be treated completely opaque.
enum l4_msgtag_flags |
Flags for message tags.
enum l4_msgtag_protocol |
Message tag for IPC operations.
All predefined protocols used by the kernel.
Predefined protocol type for messages to platform-control objects.
Enumerator | |
---|---|
L4_PROTO_PLATFORM_CTL | Protocol messages to a platform control object. See L4_platform_ctl_ops for allowed operations. |
Definition at line 147 of file platform_control.h.
|
inline |
Create a message tag from the specified values.
Message tag functions.
label | The user-defined label |
words | The number of untyped words within the UTCB |
items | The number of typed items (e.g., flex pages) within the UTCB |
flags | The IPC flags for realtime and FPU extensions |
Definition at line 408 of file types.h.
Referenced by L4::Irqep_t< Irq_object >::dispatch(), L4::Server< LOOP_HOOKS >::internal_loop(), l4_irq_trigger_u(), l4util_ioport_map(), L4::Thread::modify_senders(), and L4::Ipc_svr::Exc_dispatch< R, Exc >::operator()().
|
inline |
|
inline |
Test for error indicator flag.
t | The tag |
Return whether the kernel operation caused a communication error, e.g. with IPC. if true: utcb->error is valid, otherwise utcb->error is not valid
Definition at line 437 of file types.h.
References L4_MSGTAG_ERROR.
Referenced by l4_ipc_error(), and l4_vcon_write_u().
|
inline |
Test for exception protocol.
t | The tag |
Definition at line 451 of file types.h.
References l4_msgtag_label(), and L4_PROTO_EXCEPTION.
|
inline |
Test for IO-page-fault protocol.
t | The tag |
Definition at line 457 of file types.h.
References l4_msgtag_label(), and L4_PROTO_IO_PAGE_FAULT.
|
inline |
Test for page-fault protocol.
t | The tag |
Definition at line 442 of file types.h.
References l4_msgtag_label(), and L4_PROTO_PAGE_FAULT.
|
inline |
Test for preemption protocol.
t | The tag |
Definition at line 445 of file types.h.
References l4_msgtag_label(), and L4_PROTO_PREEMPTION.
|
inline |
Test for sigma0 protocol.
t | The tag |
Definition at line 454 of file types.h.
References l4_msgtag_label(), and L4_PROTO_SIGMA0.
|
inline |
Test for system-exception protocol.
t | The tag |
Definition at line 448 of file types.h.
References l4_msgtag_label(), and L4_PROTO_SYS_EXCEPTION.
|
inline |
Get the number of typed items.
t | The tag |
Definition at line 428 of file types.h.
Referenced by l4util_ioport_map().
|
inline |
Get the protocol of tag.
t | The tag |
Definition at line 420 of file types.h.
Referenced by l4_msgtag_is_exception(), l4_msgtag_is_io_page_fault(), l4_msgtag_is_page_fault(), l4_msgtag_is_preemption(), l4_msgtag_is_sigma0(), and l4_msgtag_is_sys_exception().
|
inline |
Get the number of untyped words.
t | The tag |