summaryrefslogtreecommitdiff
path: root/api/bits/x86_64/descriptor.h
diff options
context:
space:
mode:
Diffstat (limited to 'api/bits/x86_64/descriptor.h')
-rw-r--r--api/bits/x86_64/descriptor.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/api/bits/x86_64/descriptor.h b/api/bits/x86_64/descriptor.h
index c0c00f6..c55a493 100644
--- a/api/bits/x86_64/descriptor.h
+++ b/api/bits/x86_64/descriptor.h
@@ -1,3 +1,5 @@
+#pragma once
+
#include <stdint.h>
struct descriptor_table_register_long
@@ -16,3 +18,31 @@ struct segment_descriptor
uint8_t base24;
} __attribute__((packed, aligned(8)));
+struct system_segment_descrptor_long
+{
+ struct segment_descriptor segment;
+ uint32_t base32;
+ uint32_t r0;
+} __attribute__((packed, aligned(8)));
+
+struct gate_descriptor
+{
+ uint16_t offset0;
+ uint16_t selector;
+ uint8_t ist;
+ uint8_t access;
+ uint16_t offset16;
+ uint64_t offset32;
+} __attribute__((packed, aligned(8)));
+
+struct task_state_segment_long
+{
+ uint32_t r0;
+ uint64_t rsp[3];
+ uint64_t r1;
+ uint64_t ist[7];
+ uint64_t r2;
+ uint16_t r3;
+ uint16_t iomap_base;
+} __attribute__((packed, aligned(8)));
+