Loading...
Searching...
No Matches
Fiasco extensions
Base API

Extensions of the Fiasco L4 implementation. More...

Collaboration diagram for Fiasco extensions:

## Topics

| Kernel Debugger
| Kernel debugger related functionality.
| Kernel Information Dump
| Kernel information dumping related functionality.
| Kernel Tracing
| Kernel tracing related functionality.

## Files

file | __ktrace-impl.h
| L4 kernel event tracing.
file | ktrace.h
| L4 kernel event tracing.
file | obj_info.h
| Debugger related functions.
file | segment.h
| l4f-specific fs/gs manipulation (AMD64).
file | segment.h
| Segment handling (AMD64).
file | segment.h
| l4f-specific segment manipulation (x86).
file | segment.h
| Segment handling (x86).

## Functions

long | fiasco_ldt_set (l4_cap_idx_t task, void *ldt, unsigned int num_desc, unsigned int entry_number_start, l4_utcb_t *utcb)
| Set LDT segments descriptors.
long | fiasco_gdt_set (l4_cap_idx_t thread, void *desc, unsigned int size, unsigned int entry_number_start, l4_utcb_t *utcb)
| Set GDT segment descriptors.
unsigned | fiasco_gdt_get_entry_offset (l4_cap_idx_t thread, l4_utcb_t *utcb)
| Return the offset of the entry in the GDT.

## Detailed Description

Extensions of the Fiasco L4 implementation.

## Function Documentation

## fiasco_gdt_get_entry_offset()

unsigned fiasco_gdt_get_entry_offset | ( | l4_cap_idx_t | thread,
|  | l4_utcb_t * | utcb )

inline

Return the offset of the entry in the GDT.

Parameters

  thread | Thread to get info from.
  utcb | UTCB to be used for this operation, shall be the UTCB of the calling thread. See l4_utcb.

Definition at line 166 of file segment.h.

References l4_ipc_call(), L4_IPC_NEVER, l4_msgtag(), L4_PROTO_THREAD, and L4_THREAD_X86_GDT_OP.

Here is the call graph for this function:

## fiasco_gdt_set()

long fiasco_gdt_set | ( | l4_cap_idx_t | thread,
|  | void * | desc,
|  | unsigned int | size,
|  | unsigned int | entry_number_start,
|  | l4_utcb_t * | utcb )

inline

Set GDT segment descriptors.

Fiasco supports 4 consecutive entries, starting at the value returned by fiasco_gdt_get_entry_offset().

Parameters

  thread | Thread to set the GDT entry for.
  desc | Pointer to GDT descriptors.
  size | Size of the descriptors in bytes (multiple of 8).
  entry_number_start | Entry number to start (valid values: 0-3).
  utcb | UTCB to be used for this operation, shall be the UTCB of the calling thread. See l4_utcb.

Return values

  <0 | At least one provided GDT descriptor is considered unsafe by the kernel, and not all selected GDT descriptors have been updated.
  L4_EOK | Success.

Definition at line 41 of file segment.h.

References l4_ipc_call(), L4_IPC_NEVER, l4_msgtag(), L4_PROTO_THREAD, and L4_THREAD_X86_GDT_OP.

Here is the call graph for this function:

## fiasco_ldt_set()

long fiasco_ldt_set | ( | l4_cap_idx_t | task,
|  | void * | ldt,
|  | unsigned int | num_desc,
|  | unsigned int | entry_number_start,
|  | l4_utcb_t * | utcb )

inline

Set LDT segments descriptors.

Parameters

  task | Task to set the segment for.
  ldt | Pointer to LDT hardware descriptors.
  num_desc | Number of descriptors.
  entry_number_start | Entry number to start.
  utcb | UTCB to be used for this operation, shall be the UTCB of the calling thread. See l4_utcb.

Return values

  -L4_ENOSYS | The kernel configuration doesn't support this feature.
  -L4_EINVAL | Invalid descriptor or invalid entry number.
  L4_EOK | Success.

Note
  This feature is not available if the kernel is configured with page table isolation.

Definition at line 153 of file segment.h.

References L4_EINVAL, l4_ipc_call(), L4_IPC_NEVER, l4_msgtag(), L4_PROTO_TASK, L4_TASK_LDT_SET_X86_OP, L4_TASK_LDT_X86_ENTRY_SIZE, and L4_TASK_LDT_X86_MAX_ENTRIES.

Here is the call graph for this function: