L4Re Operating System Framework
Interface and Usage Documentation
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Virtual Registers (UTCBs)

L4 Virtual Registers (UTCB). More...

+ Collaboration diagram for Virtual Registers (UTCBs):

Modules

 AMD64 Virtual Registers (UTCB)
 
 ARM Virtual Registers (UTCB)
 
 ARM64 Virtual Registers (UTCB)
 
 Buffer Registers (BRs)
 
 Message Registers (MRs)
 
 Thread Control Registers (TCRs)
 
 x86 Virtual Registers (UTCB)
 

Files

file  utcb.h
 UTCB definitions for ARM.
 
file  utcb.h
 UTCB definitions for ARM64.
 
file  utcb.h
 UTCB definitions for AMD64.
 
file  utcb.h
 UTCB definitions for x86.
 

Typedefs

typedef struct l4_utcb_t l4_utcb_t
 Opaque type for the UTCB.
 

Functions

l4_utcb_tl4_utcb (void) L4_NOTHROW L4_PURE
 Get the UTCB address.
 
l4_msg_regs_tl4_utcb_mr (void) L4_NOTHROW L4_PURE
 Get the message-register block of a UTCB.
 
l4_buf_regs_tl4_utcb_br (void) L4_NOTHROW L4_PURE
 Get the buffer-register block of a UTCB.
 
l4_thread_regs_tl4_utcb_tcr (void) L4_NOTHROW L4_PURE
 Get the thread-control-register block of a UTCB.
 

Detailed Description

L4 Virtual Registers (UTCB).

Include File
#include <l4/sys/utcb.h>

The virtual registers are part of the micro-kernel API and are located in the user-level thread control block (UTCB). The UTCB is a data structure defined by the micro kernel and located on kernel-provided memory. Each L4 thread gets a unique UTCB assigned when it is bound to a task (see Thread Control , l4_thread_control_bind() for more information).

The UTCB is arranged in three blocks of virtual registers.

To access the contents of the virtual registers the l4_utcb_mr(), l4_utcb_tcr(), and l4_utcb_br() functions must be used.

Typedef Documentation

◆ l4_utcb_t

typedef struct l4_utcb_t l4_utcb_t

Opaque type for the UTCB.

To access the contents of the virtual registers the l4_utcb_mr(), l4_utcb_tcr(), and l4_utcb_br() functions must be used.

Definition at line 56 of file utcb.h.

Function Documentation

◆ l4_utcb_br()

l4_buf_regs_t * l4_utcb_br ( void  )
inline

Get the buffer-register block of a UTCB.

Returns
A pointer to the buffer-register block of u.

Definition at line 361 of file utcb.h.

References l4_utcb().

Referenced by l4util_ioport_map().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ l4_utcb_mr()

l4_msg_regs_t * l4_utcb_mr ( void  )
inline

Get the message-register block of a UTCB.

Returns
A pointer to the message-register block of u.
Examples
examples/sys/aliens/main.c, examples/sys/ipc/ipc_example.c, examples/sys/singlestep/main.c, and examples/sys/utcb-ipc/main.c.

Definition at line 358 of file utcb.h.

References l4_utcb().

Referenced by l4util_ioport_map().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ l4_utcb_tcr()

l4_thread_regs_t * l4_utcb_tcr ( void  )
inline

Get the thread-control-register block of a UTCB.

Returns
A pointer to the thread-control-register block of u.

Definition at line 364 of file utcb.h.

References l4_utcb().

+ Here is the call graph for this function: