diff options
| author | Matteo Gmür <matteo.gmuer1@ost.ch> | 2025-04-27 14:17:19 +0000 |
|---|---|---|
| committer | Matteo Gmür <matteo.gmuer1@ost.ch> | 2025-04-27 14:17:19 +0000 |
| commit | 7c5a40a0de0c5e3ce0a51aa5414c4a433190c60c (patch) | |
| tree | 13ece734be29768b20fad994fc24566db2f8ade7 /arch/x86_64/src | |
| parent | a8a8e09ed39268839ca838c44489bb1352892fef (diff) | |
| download | teachos-7c5a40a0de0c5e3ce0a51aa5414c4a433190c60c.tar.xz teachos-7c5a40a0de0c5e3ce0a51aa5414c4a433190c60c.zip | |
Add validate methods. For WIP systemcall
Diffstat (limited to 'arch/x86_64/src')
| -rw-r--r-- | arch/x86_64/src/context_switching/main.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86_64/src/context_switching/main.cpp b/arch/x86_64/src/context_switching/main.cpp index 287ced4..bd48e18 100644 --- a/arch/x86_64/src/context_switching/main.cpp +++ b/arch/x86_64/src/context_switching/main.cpp @@ -20,6 +20,8 @@ namespace teachos::arch::context_switching constexpr interrupt_descriptor_table::segment_selector KERNEL_CODE_SEGMENT_SELECTOR{ 1U, interrupt_descriptor_table::segment_selector::REQUEST_LEVEL_KERNEL}; + constexpr interrupt_descriptor_table::segment_selector KERNEL_DATA_SEGMENT_SELECTOR{ + 2U, interrupt_descriptor_table::segment_selector::REQUEST_LEVEL_KERNEL}; constexpr kernel::cpu::far_pointer KERNEL_CODE_POINTER{&kernel::cpu::reload_data_segment_registers, KERNEL_CODE_SEGMENT_SELECTOR}; constexpr context_switching::interrupt_descriptor_table::segment_selector USER_CODE_SEGMENT_SELECTOR{ @@ -45,6 +47,8 @@ namespace teachos::arch::context_switching auto syscall_handler() -> void { + kernel::cpu::validate_segment_registers(KERNEL_CODE_SEGMENT_SELECTOR, KERNEL_DATA_SEGMENT_SELECTOR); + uint64_t dummy{}; switch (dummy) { |
