L4Re Operating System Framework
Interface and Usage Documentation
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Fiasco extensions

Extensions of the Fiasco L4 implementation. More...

+ Collaboration diagram for Fiasco extensions:

Modules

 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
threadThread to get info from.
utcbUTCB 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, L4_THREAD_X86_GDT_OP, and l4_msg_regs_t::mr.

+ 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
threadThread to set the GDT entry for.
descPointer to GDT descriptors.
sizeSize of the descriptors in bytes (multiple of 8).
entry_number_startEntry number to start (valid values: 0-3).
utcbUTCB to be used for this operation, shall be the UTCB of the calling thread. See l4_utcb.
Return values
<0At least one provided GDT descriptor is considered unsafe by the kernel, and not all selected GDT descriptors have been updated.
L4_EOKSuccess.

Definition at line 41 of file segment.h.

References l4_ipc_call(), L4_IPC_NEVER, l4_msgtag(), L4_PROTO_THREAD, L4_THREAD_X86_GDT_OP, and l4_msg_regs_t::mr.

+ 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
taskTask to set the segment for.
ldtPointer to LDT hardware descriptors.
num_descNumber of descriptors.
entry_number_startEntry number to start.
utcbUTCB to be used for this operation, shall be the UTCB of the calling thread. See l4_utcb.
Return values
-L4_ENOSYSThe kernel configuration doesn't support this feature.
-L4_EINVALInvalid descriptor or invalid entry number.
L4_EOKSuccess.
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, L4_TASK_LDT_X86_MAX_ENTRIES, and l4_msg_regs_t::mr.

+ Here is the call graph for this function: