diff options
Diffstat (limited to 'api/bits/x86_64/descriptor.h')
| -rw-r--r-- | api/bits/x86_64/descriptor.h | 30 |
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))); + |
