Module x86::segmentation [] [src]

Program x86 segmentation hardware.

Structs

SegmentDescriptor
SegmentSelector

Constants

DESC_AVL

Available for use by system software.

DESC_DB

Default operation size (0 = 16-bit segment, 1 = 32-bit segment)

DESC_DPL0

Descriptor privilege level 0.

DESC_DPL1

Descriptor privilege level 1.

DESC_DPL2

Descriptor privilege level 2.

DESC_DPL3

Descriptor privilege level 3.

DESC_G

Granularity.

DESC_L

64-bit code segment (IA-32e mode only).

DESC_P

Descriptor is Present.

DESC_S

Descriptor type (0 = system; 1 = code or data).

RPL_0

Requestor Privilege Level

RPL_1
RPL_2
RPL_3
TI_GDT

Table Indicator (TI) 0 means GDT is used.

TI_LDT

Table Indicator (TI) 1 means LDT is used.

TYPE_C_EO

Code Execute-Only

TYPE_C_EOA

Code Execute-Only, accessed

TYPE_C_EOC

Code Execute-Only, conforming

TYPE_C_EOCA

Code Execute-Only, conforming, accessed

TYPE_C_ER

Code Execute/Read

TYPE_C_ERA

Code Execute/Read, accessed

TYPE_C_ERC

Code Execute/Read, conforming

TYPE_C_ERCA

Code Execute/Read, conforming, accessed

TYPE_D_RO

Data Read-Only

TYPE_D_ROA

Data Read-Only, accessed

TYPE_D_ROEXD

Data Read-Only, expand-down

TYPE_D_ROEXDA

Data Read-Only, expand-down, accessed

TYPE_D_RW

Data Read/Write

TYPE_D_RWA

Data Read/Write, accessed

TYPE_D_RWEXD

Data Read/Write, expand-down

TYPE_D_RWEXDA

Data Read/Write, expand-down, accessed

TYPE_SYS_CALL_GATE
TYPE_SYS_INTERRUPT_GATE
TYPE_SYS_LDT
TYPE_SYS_TRAP_GATE
TYPE_SYS_TSS_AVAILABLE
TYPE_SYS_TSS_BUSY

Functions

load_cs

Reload code segment register. Note this is special since we can not directly move to %cs. Instead we push the new segment selector and return value on the stack and use lretq to reload cs and continue at 1:.

load_ds

Reload data segment register.

load_es

Reload fs segment register.

load_fs

Reload fs segment register.

load_gs

Reload gs segment register.

load_ss

Reload stack segment register.