27 std::vector<gdt_x64::segment_descriptor_type>
g_gdt =
43 { g_gdt_reg = *gdt_reg; }
46 intrinsics_ut::test_gdt_reg_set_get()
55 intrinsics_ut::test_gdt_reg_base_set_get()
62 intrinsics_ut::test_gdt_reg_limit_set_get()
69 intrinsics_ut::test_gdt_constructor_no_size()
75 intrinsics_ut::test_gdt_constructor_zero_size()
81 intrinsics_ut::test_gdt_constructor_size()
89 intrinsics_ut::test_gdt_base()
96 intrinsics_ut::test_gdt_limit()
103 intrinsics_ut::test_gdt_set_base_zero_index()
110 intrinsics_ut::test_gdt_set_base_invalid_index()
117 intrinsics_ut::test_gdt_set_base_tss_at_end_of_gdt()
124 intrinsics_ut::test_gdt_set_base_descriptor_success()
129 this->
expect_true(gdt.m_gdt.at(1) == 0x12FFFF345678FFFF);
133 intrinsics_ut::test_gdt_set_base_tss_success()
138 this->
expect_true(gdt.m_gdt.at(2) == 0x12FF8F345678FFFF);
139 this->
expect_true(gdt.m_gdt.at(3) == 0x0000000012345678);
143 intrinsics_ut::test_gdt_base_zero_index()
150 intrinsics_ut::test_gdt_base_invalid_index()
157 intrinsics_ut::test_gdt_base_tss_at_end_of_gdt()
164 intrinsics_ut::test_gdt_base_descriptor_success()
168 gdt.m_gdt.at(1) = 0x12FFFF345678FFFF;
173 intrinsics_ut::test_gdt_base_tss_success()
177 gdt.m_gdt.at(2) = 0x12FF8F345678FFFF;
178 gdt.m_gdt.at(3) = 0x0000000012345678;
183 intrinsics_ut::test_gdt_set_limit_zero_index()
190 intrinsics_ut::test_gdt_set_limit_invalid_index()
197 intrinsics_ut::test_gdt_set_limit_descriptor_success()
202 this->
expect_true(gdt.m_gdt.at(1) == 0xFFF1FFFFFFFF2345);
206 intrinsics_ut::test_gdt_limit_zero_index()
213 intrinsics_ut::test_gdt_limit_invalid_index()
220 intrinsics_ut::test_gdt_limit_descriptor_success()
224 gdt.m_gdt.at(1) = 0xFFF4FFFFFFFF5678;
229 intrinsics_ut::test_gdt_limit_descriptor_in_bytes_success()
233 gdt.m_gdt.at(1) = 0xFF74FFFFFFFF5678;
238 intrinsics_ut::test_gdt_set_access_rights_zero_index()
245 intrinsics_ut::test_gdt_set_access_rights_invalid_index()
252 intrinsics_ut::test_gdt_set_access_rights_descriptor_success()
257 this->
expect_true(gdt.m_gdt.at(1) == 0xFF5F78FFFFFFFFFF);
261 intrinsics_ut::test_gdt_access_rights_zero_index()
268 intrinsics_ut::test_gdt_access_rights_invalid_index()
275 intrinsics_ut::test_gdt_access_rights_descriptor_success()
279 gdt.m_gdt.at(1) = 0xFF5F78FFFFFFFFFF;
#define expect_exception(f, e)
uint64_t segment_descriptor_type
access_rights_type access_rights(index_type index) const
void __read_gdt(gdt_reg_x64_t *gdt_reg) noexcept
#define expect_no_exception(f)
void set_base(index_type index, base_type base)
void set_access_rights(index_type index, access_rights_type access_rights)
void set(gdt_reg_x64_t::limit_type limit) noexcept
void set(gdt_reg_x64_t::base_type base) noexcept
void set_limit(index_type index, limit_type limit)
void uint64_t uint64_t uint64_t *rdx noexcept
void __write_gdt(gdt_reg_x64_t *gdt_reg) noexcept
void set(gdt_reg_x64_t::base_type base, gdt_reg_x64_t::limit_type limit) noexcept
integer_pointer base() const
std::vector< gdt_x64::segment_descriptor_type > g_gdt
uintptr_t integer_pointer