diff options
| author | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-03-06 16:01:29 +0200 |
|---|---|---|
| committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-03-06 16:01:37 +0200 |
| commit | e40da55691ad2c36b349ace7cd368394976a1d6d (patch) | |
| tree | 5ffe26ab4306d2f1fe6eb9ce08dc119189f92e9b /src/gdt | |
| parent | libk: add int_t min max size constants (diff) | |
| download | kernel.cpp-e40da55691ad2c36b349ace7cd368394976a1d6d.tar.xz | |
GDT: flush segment registers on lgdt
Diffstat (limited to 'src/gdt')
| -rw-r--r-- | src/gdt/segmentdescriptor.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/gdt/segmentdescriptor.cc b/src/gdt/segmentdescriptor.cc index baf4753..dadd65b 100644 --- a/src/gdt/segmentdescriptor.cc +++ b/src/gdt/segmentdescriptor.cc @@ -1,4 +1,12 @@ -#include "../gdt.h" +#include "gdt.h" + +using seg = GDT::SegmentDescriptor; + +static_assert(sizeof(seg) == 8); +static_assert(sizeof(seg::Access) == 1); +static_assert((seg::Access{}) == 0x00); +static_assert((seg::Access{.r_w = true, .exe = true, .segment = true, .present = true}) == 0x9a); +static_assert((seg::Access{.r_w = true, .segment = true, .present = true}) == 0x92); GDT::SegmentDescriptor::SegmentDescriptor(uint32_t base, uint32_t limit, GDT::SegmentDescriptor::Access type) : access(type) { |
