 
			
		Abstracts the GDT that, primarily, contains descriptors to memory segments. More...
| Classes | |
| union | SegmentDescriptor | 
| Describes the structure of segment descriptors.  More... | |
| Structs | |
| struct | Pointer | 
| Structure that describes a GDT Pointer (aka GDT Descriptor)  More... | |
| struct | SegmentDescriptor.__unnamed__ | 
| Enumerations | |
| enum | Segments { SEGMENT_NULL = 0, SEGMENT_KERNEL_CODE, SEGMENT_KERNEL_DATA } | 
| enum | Granularity { GRANULARITY_BYTES = 0, GRANULARITY_4KBLOCK = 1 } | 
| Unit of the segment limit.  More... | |
| enum | DescriptorType { DESCRIPTOR_SYSTEM = 0, DESCRIPTOR_CODEDATA = 1 } | 
| Descriptor type.  More... | |
| enum | Size { SIZE_16BIT = 0, SIZE_32BIT = 2, SIZE_64BIT = 1 } | 
| Address width.  More... | |
| enum | Gate { GATE_TSS = 0x1, GATE_LDT = 0x2, GATE_TSS_BUSY = 0x3, GATE_CALL = 0x4, GATE_TASK = 0x5, GATE_INTERRUPT = 0x6, GATE_TRAP = 0x7 } | 
| gate type  More... | |
| Functions | |
| constexpr Pointer | gdt_protected_mode_pointer (protected_mode) | 
| constexpr Pointer | gdt_long_mode_pointer (long_mode) | 
Abstracts the GDT that, primarily, contains descriptors to memory segments.
The GDT is a table that primarily contains segment descriptors. Segment descriptors has a size of 8 Bytes and contains the size, position, access rights, and purpose of such a segment. Unlike the LDT, the GDT is shared between all processes and may contain TSS and LDT descriptors. For the kernel, the first entry is required to be a null descriptor and the code and data segments. To support user-mode processes, additional TSS, code, and data segments for ring 3 must be added.
The base address and size of the GDT are written to the GDTR register during boot (via. lgdt).
| enum GDT::Granularity | 
| enum GDT::DescriptorType | 
| enum GDT::Size | 
| enum GDT::Gate |