L4Re Operating System Framework
Interface and Usage Documentation
|
Segment handling. More...
Go to the source code of this file.
Enumerations | |
enum | L4_task_ldt_x86_consts { L4_TASK_LDT_X86_ENTRY_SIZE = 8 , L4_TASK_LDT_X86_MAX_ENTRIES } |
Contants for LDT handling. More... | |
enum | L4_sys_segment { L4_AMD64_SEGMENT_FS = 0 , L4_AMD64_SEGMENT_GS = 1 } |
Constants for identifying segments. More... | |
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. | |
long | fiasco_amd64_set_fs (l4_cap_idx_t thread, l4_umword_t base, l4_utcb_t *utcb) |
Set the base address for the FS segment. | |
long | fiasco_amd64_set_segment_base (l4_cap_idx_t thread, enum L4_sys_segment segr, l4_umword_t base, l4_utcb_t *utcb) |
Set the base address for a segment. | |
long | fiasco_amd64_segment_info (l4_cap_idx_t thread, unsigned *user_ds, unsigned *user_cs, unsigned *user32_cs, l4_utcb_t *utcb) |
Get segment information. | |
Segment handling.
Definition in file segment.h.
enum L4_sys_segment |
|
inline |
Get segment information.
[in] | thread | Thread to get info from. |
[out] | user_ds | DS segment selector. |
[out] | user_cs | 64-bit CS segment selector. |
[out] | user32_cs | 32-bit CS segment selector. |
utcb | UTCB to be used for this operation, shall be the UTCB of the calling thread. See l4_utcb. |
Definition at line 186 of file segment.h.
References l4_ipc_call(), L4_IPC_NEVER, l4_msgtag(), L4_PROTO_THREAD, L4_THREAD_AMD64_GET_SEGMENT_INFO_OP, and l4_msg_regs_t::mr.
|
inline |
Set the base address for the FS segment.
thread | Thread for which the FS base address shall be modified. |
base | Base address. |
utcb | UTCB to be used for this operation, shall be the UTCB of the calling thread. See l4_utcb. |
L4_EOK | Success. |
-L4_EINVAL | Invalid base address (base ). |
-L4_ENOSYS | Operation not supported with current kernel configuration. |
fiasco_amd64_set_segment_base(thread, L4_AMD64_SEGMENT_FS, base, utcb)
. Definition at line 35 of file segment.h.
References L4_AMD64_SEGMENT_FS, l4_ipc_call(), L4_IPC_NEVER, l4_msgtag(), L4_PROTO_THREAD, L4_THREAD_AMD64_SET_SEGMENT_BASE_OP, and l4_msg_regs_t::mr.
|
inline |
Set the base address for a segment.
thread | Thread for which the base address of the selected segment shall be modified. |
segr | Segment to modify (one of L4_sys_segment). |
base | Base address. |
utcb | UTCB to be used for this operation, shall be the UTCB of the calling thread. See l4_utcb. |
L4_EOK | Success. |
-L4_EINVAL | Invalid segment (segr ) or base address (base ). |
-L4_ENOSYS | Operation not supported with current kernel configuration. |
Definition at line 43 of file segment.h.
References l4_ipc_call(), L4_IPC_NEVER, l4_msgtag(), L4_PROTO_THREAD, L4_THREAD_AMD64_SET_SEGMENT_BASE_OP, and l4_msg_regs_t::mr.