Loading...
Searching...
No Matches
Virtual Registers (UTCBs)
Base API » Object Invocation

L4 Virtual Registers (UTCB). More...

Collaboration diagram for Virtual Registers (UTCBs):

## Topics

| Message Registers (MRs)
| Buffer Registers (BRs)
| Thread Control Registers (TCRs)
| ARM Virtual Registers (UTCB)
| ARM64 Virtual Registers (UTCB)
| AMD64 Virtual Registers (UTCB)
| 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_t * | l4_utcb (void) L4_NOTHROW L4_PURE
| Get the UTCB address.
l4_msg_regs_t * | l4_utcb_mr (void) L4_NOTHROW L4_PURE
| Get the message-register block of a UTCB.
l4_buf_regs_t * | l4_utcb_br (void) L4_NOTHROW L4_PURE
| Get the buffer-register block of a UTCB.
l4_thread_regs_t * | l4_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.

- Thread Control Registers (TCRs)
- Message Registers (MRs)
- Buffer Registers (BRs)

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.

Examples
  examples/sys/aliens/main.c, examples/sys/singlestep/main.c, examples/sys/start-with-exc/main.c, and examples/sys/utcb-ipc/main.c.

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_INLINE, L4_NOTHROW, and 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_INLINE, L4_NOTHROW, and 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_INLINE, L4_NOTHROW, and l4_utcb().

Here is the call graph for this function: