30#include <l4/sys/l4int.h>
32#include <l4/sys/consts.h>
82 L4_VARG_TYPE_NIL = 0x00,
83 L4_VARG_TYPE_UMWORD = 0x01,
84 L4_VARG_TYPE_MWORD = 0x81,
85 L4_VARG_TYPE_STRING = 0x02,
86 L4_VARG_TYPE_FPAGE = 0x03,
88 L4_VARG_TYPE_SIGN = 0x80,
137 L4_MSGTAG_PROPAGATE = 0x4000,
413{
return c & L4_INVALID_CAP_BIT; }
417{
return !(c & L4_INVALID_CAP_BIT); }
441{
return t.
raw >> 16; }
445{
return t.raw & 0x3f; }
449{
return (t.raw >> 6) & 0x3f; }
453{
return t.raw & 0xf000; }
483#include <l4/sys/__l4_fpage.h>
484#include <l4/sys/__timeout.h>
L4 compiler related defines.
unsigned long l4_umword_t
Unsigned machine word.
signed long l4_mword_t
Signed machine word.
unsigned long l4_cap_idx_t
Capability selector type.
unsigned l4_is_invalid_cap(l4_cap_idx_t c) L4_NOTHROW
Test if a capability selector is the invalid capability.
unsigned l4_capability_equal(l4_cap_idx_t c1, l4_cap_idx_t c2) L4_NOTHROW
Test if the capability indices of two capability selectors are equal.
unsigned l4_is_valid_cap(l4_cap_idx_t c) L4_NOTHROW
Test if a capability selector is a valid selector.
@ L4_CAP_OFFSET
Offset of two consecutive capability selectors.
@ L4_CAP_SHIFT
Capability index shift.
unsigned l4_msgtag_is_sigma0(l4_msgtag_t t) L4_NOTHROW
Test for sigma0 protocol.
unsigned l4_msgtag_is_exception(l4_msgtag_t t) L4_NOTHROW
Test for exception protocol.
L4_msgtag_flags
Flags for message tags.
unsigned l4_msgtag_items(l4_msgtag_t t) L4_NOTHROW
Get the number of typed items.
unsigned l4_msgtag_is_io_page_fault(l4_msgtag_t t) L4_NOTHROW
Test for IO-page-fault protocol.
unsigned l4_msgtag_has_error(l4_msgtag_t t) L4_NOTHROW
Test for error indicator flag.
l4_msgtag_t l4_msgtag(long label, unsigned words, unsigned items, unsigned flags) L4_NOTHROW
Create a message tag from the specified values.
unsigned l4_msgtag_words(l4_msgtag_t t) L4_NOTHROW
Get the number of untyped words.
L4_msgtag_protocol
Message tag for IPC operations.
unsigned l4_msgtag_flags(l4_msgtag_t t) L4_NOTHROW
Get the flags.
long l4_msgtag_label(l4_msgtag_t t) L4_NOTHROW
Get the protocol of tag.
unsigned l4_msgtag_is_page_fault(l4_msgtag_t t) L4_NOTHROW
Test for page-fault protocol.
unsigned l4_msgtag_is_preemption(l4_msgtag_t t) L4_NOTHROW
Test for preemption protocol.
unsigned l4_msgtag_is_sys_exception(l4_msgtag_t t) L4_NOTHROW
Test for system-exception protocol.
@ L4_MSGTAG_FLAGS
Mask for all flags.
@ L4_MSGTAG_ERROR
Error indicator flag.
@ L4_MSGTAG_SCHEDULE
Enable schedule in IPC flag.
@ L4_MSGTAG_TRANSFER_FPU
Enable FPU transfer flag for IPC.
@ L4_PROTO_IRQ
IRQ message.
@ L4_PROTO_FACTORY
Protocol for messages to a factory object.
@ L4_PROTO_DMA_SPACE
Protocol for (creating) kernel DMA space objects.
@ L4_PROTO_SCHEDULER
Protocol for messages to a scheduler object.
@ L4_PROTO_SYS_EXCEPTION
System exception.
@ L4_PROTO_EXCEPTION
Exception.
@ L4_PROTO_IRQ_SENDER
Protocol for IRQ senders (IRQ -> IPC)
@ L4_PROTO_PREEMPTION
Preemption message.
@ L4_PROTO_KOBJECT
Protocol for messages to a generic kobject.
@ L4_PROTO_TASK
Protocol for messages to a task object.
@ L4_PROTO_IO_PAGE_FAULT
I/O page fault message.
@ L4_PROTO_NONE
Default protocol tag to reply to kernel.
@ L4_PROTO_VM
Protocol for messages to a virtual machine object.
@ L4_PROTO_SIGMA0
Sigma0 protocol.
@ L4_PROTO_THREAD
Protocol for messages to a thread object.
@ L4_PROTO_PF_EXCEPTION
Make an exception out of a page fault.
@ L4_PROTO_META
Meta information protocol.
@ L4_PROTO_IRQ_MUX
Protocol for IRQ mux (IRQ -> n x IRQ)
@ L4_PROTO_PAGE_FAULT
Page fault message.
@ L4_PROTO_IOMMU
Protocol ID for IO-MMUs.
@ L4_PROTO_ALLOW_SYSCALL
Allow an alien the system call.
@ L4_PROTO_SEMAPHORE
Protocol for semaphore objects.
@ L4_PROTO_LOG
Protocol for messages to a log object.
@ L4_PROTO_DEBUGGER
Protocol ID for the debugger.
@ L4_PROTO_VCPU_CONTEXT
Protocol for hardware vCPU contexts.
@ L4_PROTO_SMCCC
Protocol ID for ARM SMCCC calls.
#define L4_NOTHROW
Mark a function declaration and definition as never throwing an exception.
#define L4_INLINE
L4 Inline function attribute.
l4_cap_idx_t l4_capability_next(l4_cap_idx_t c) L4_NOTHROW
Get the next capability selector after c.
Message tag data structure.
long label() const L4_NOTHROW
Get the protocol value.
unsigned has_error() const L4_NOTHROW
Test if flags indicate an error.
bool is_page_fault() const L4_NOTHROW
Test if protocol indicates page-fault protocol.
bool is_sigma0() const L4_NOTHROW
Test if protocol indicates sigma0 protocol.
bool is_preemption() const L4_NOTHROW
Test if protocol indicates preemption protocol.
void label(long v) L4_NOTHROW
Set the protocol value.
bool is_exception() const L4_NOTHROW
Test if protocol indicates exception protocol.
bool is_sys_exception() const L4_NOTHROW
Test if protocol indicates system-exception protocol.
unsigned words() const L4_NOTHROW
Get the number of untyped words.
bool is_io_page_fault() const L4_NOTHROW
Test if protocol indicates IO-page-fault protocol.
unsigned items() const L4_NOTHROW
Get the number of typed items.
unsigned flags() const L4_NOTHROW
Get the flags value.