![]() |
L4Re Operating System Framework
Interface and Usage Documentation
|
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. | |
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_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_SEMAPHORE = -20L , L4_PROTO_META = -21L , L4_PROTO_IOMMU = -22L , L4_PROTO_DEBUGGER = -23L , L4_PROTO_SMCCC = -24L , L4_PROTO_VCPU_CONTEXT = -25L } |
Message tag for IPC operations. More... | |
enum | L4_msgtag_flags { L4_MSGTAG_ERROR , L4_MSGTAG_TRANSFER_FPU , L4_MSGTAG_SCHEDULE , L4_MSGTAG_PROPAGATE = 0x4000 , 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. | |
long | l4_msgtag_label (l4_msgtag_t t) L4_NOTHROW |
Get the protocol of tag. | |
unsigned | l4_msgtag_words (l4_msgtag_t t) L4_NOTHROW |
Get the number of untyped words. | |
unsigned | l4_msgtag_items (l4_msgtag_t t) L4_NOTHROW |
Get the number of typed items. | |
unsigned | l4_msgtag_flags (l4_msgtag_t t) L4_NOTHROW |
Get the flags. | |
unsigned | l4_msgtag_has_error (l4_msgtag_t t) L4_NOTHROW |
Test for error indicator flag. | |
unsigned | l4_msgtag_is_page_fault (l4_msgtag_t t) L4_NOTHROW |
Test for page-fault protocol. | |
unsigned | l4_msgtag_is_exception (l4_msgtag_t t) L4_NOTHROW |
Test for exception protocol. | |
unsigned | l4_msgtag_is_sigma0 (l4_msgtag_t t) L4_NOTHROW |
Test for sigma0 protocol. | |
unsigned | l4_msgtag_is_io_page_fault (l4_msgtag_t t) L4_NOTHROW |
Test for IO-page-fault protocol. | |
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 174 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., flexpages) within the UTCB |
flags | The IPC flags for realtime and FPU extensions |
Definition at line 404 of file types.h.
Referenced by __kdebug_3_text(), __kdebug_op(), __kdebug_op_1(), __kdebug_text(), L4::Irqep_t< Derived, BASE, bool >::dispatch(), enter_kdebug(), fiasco_amd64_segment_info(), fiasco_amd64_set_fs(), fiasco_amd64_set_segment_base(), fiasco_gdt_get_entry_offset(), fiasco_gdt_set(), fiasco_ldt_set(), L4::Server< LOOP_HOOKS >::internal_loop(), l4_icu_bind_u(), l4_icu_info_u(), l4_icu_msi_info_u(), l4_icu_set_mode_u(), l4_icu_unbind_u(), l4_irq_bind_vcpu_u(), l4_irq_detach_u(), l4_irq_receive_u(), l4_irq_trigger_u(), l4_irq_unmask_u(), l4_irq_wait_u(), l4_thread_ex_regs_u(), l4_thread_vcpu_control_ext_u(), l4_thread_vcpu_control_u(), l4_thread_yield(), l4_vcon_get_attr_u(), l4_vcon_send_u(), l4_vcon_set_attr_u(), l4util_ioport_map(), L4::Thread::modify_senders(), L4::Ipc_svr::Exc_dispatch< R, Exc >::operator()(), L4::Ipc_svr::Dbg_dispatch< R, Exc, Printer >::operator()(), L4::Cap_base::validate(), and L4::Cap_base::validate().
|
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 439 of file types.h.
References L4_MSGTAG_ERROR.
Referenced by l4_icu_msi_info_u(), l4_ipc_error(), and l4_vcon_write_u().
|
inline |
Test for exception protocol.
t | The tag |
Definition at line 447 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 453 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 444 of file types.h.
References l4_msgtag_label(), and L4_PROTO_PAGE_FAULT.
|
inline |
Test for sigma0 protocol.
t | The tag |
Definition at line 450 of file types.h.
References l4_msgtag_label(), and L4_PROTO_SIGMA0.
|
inline |
Get the number of typed items.
t | The tag |
Definition at line 430 of file types.h.
Referenced by l4util_ioport_map().
|
inline |
Get the protocol of tag.
t | The tag |
Definition at line 416 of file types.h.
References l4_msgtag_t::raw.
Referenced by l4_msgtag_is_exception(), l4_msgtag_is_io_page_fault(), l4_msgtag_is_page_fault(), and l4_msgtag_is_sigma0().
|
inline |
Get the number of untyped words.
t | The tag |
Definition at line 426 of file types.h.
Referenced by l4_icu_msi_info_u().