aboutsummaryrefslogtreecommitdiff
path: root/tests/test_gdt.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_gdt.c')
-rw-r--r--tests/test_gdt.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/test_gdt.c b/tests/test_gdt.c
new file mode 100644
index 0000000..938e709
--- /dev/null
+++ b/tests/test_gdt.c
@@ -0,0 +1,21 @@
+#include "gdt.h"
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+int main() {
+
+ uint16_t code_info = make_code(0, 0, 1);
+ uint16_t data_info = make_data(0, 0, 1);
+ Segment_Descriptor_t null = make_descriptor(0, 0, 0);
+ Segment_Descriptor_t code = make_descriptor(0, 0xFFFFF, code_info);
+ Segment_Descriptor_t data = make_descriptor(0, 0xFFFFF, data_info);
+ GDT_t *table = malloc(sizeof(GDT_t));
+ *table = (GDT_t){null, code, data};
+ GDTR_t gdtr = {(table + sizeof(GDT_t) - table - 1), (uint32_t)table};
+
+ printf("%zu\n", sizeof(GDT_t));
+ printf("0x%.16llX\n", null);
+ printf("0x%.16llX\n", code);
+ printf("0x%.16llX\n", data);
+ printf("0x%.24llX\n", table);
+}