L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
Fiasco extensions

Extensions of the Fiasco L4 implementation. More...

+ Collaboration diagram for Fiasco extensions:

Modules

 Fiasco real time scheduling extensions
 Real time scheduling extension for the Fiasco L4 implementation.
 
 Kernel Debugger
 Kernel debugger related functionality.
 
 Kernel Tracing
 Kernel tracing related functionality.
 

Files

file  segment.h
 l4f specific fs/gs manipulation
 
file  segment.h
 l4f specific segment manipulation
 

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 177 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 52 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 164 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: