diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/x86_64/src/context_switching/descriptor_table/global_descriptor_table.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/x86_64/src/context_switching/descriptor_table/global_descriptor_table.cpp b/arch/x86_64/src/context_switching/descriptor_table/global_descriptor_table.cpp index 2b399f8..77bd3e9 100644 --- a/arch/x86_64/src/context_switching/descriptor_table/global_descriptor_table.cpp +++ b/arch/x86_64/src/context_switching/descriptor_table/global_descriptor_table.cpp @@ -34,10 +34,11 @@ namespace teachos::arch::context_switching::descriptor_table access_level_bitset |= access_byte::WRITABLE; } + uint64_t base = 0x0; std::bitset<20U> limit{0xFFFFF}; access_byte access_byte{access_level_bitset}; gdt_flags gdt_flags{gdt_flags_bitset, limit}; - segment_descriptor code_segment{access_byte, gdt_flags, 0, limit}; + segment_descriptor code_segment{access_byte, gdt_flags, base, limit}; return code_segment; } @@ -54,8 +55,8 @@ namespace teachos::arch::context_switching::descriptor_table segment_descriptor user_data_segment = create_segment_descriptor(segment_descriptor_type::DATA_SEGMENT, access_level::USER); - stl::vector<segment_descriptor> global_descriptor_table{null_segment, kernel_code_segment, kernel_data_segment, - user_code_segment, user_data_segment}; + global_descriptor_table global_descriptor_table{null_segment, kernel_code_segment, kernel_data_segment, + user_code_segment, user_data_segment}; return global_descriptor_table; } |
