diff options
| author | Ada Christine <adachristine18@gmail.com> | 2025-01-31 00:48:54 +0000 |
|---|---|---|
| committer | Ada Christine <adachristine18@gmail.com> | 2025-01-31 00:48:54 +0000 |
| commit | 2fb3f208bd2e739a8968afb23d22e13b6660ca22 (patch) | |
| tree | 4bf02b06ed27c2726f675f752e064211df934323 /api/bits/x86_64 | |
| parent | 0d2ddecc9aeb232746b76b4eebdb1381053a8951 (diff) | |
spread around defs, x86 asm and bits libs
Diffstat (limited to 'api/bits/x86_64')
| -rw-r--r-- | api/bits/x86_64/descriptor.h | 18 | ||||
| -rw-r--r-- | api/bits/x86_64/msr.h | 29 |
2 files changed, 47 insertions, 0 deletions
diff --git a/api/bits/x86_64/descriptor.h b/api/bits/x86_64/descriptor.h new file mode 100644 index 0000000..649ac74 --- /dev/null +++ b/api/bits/x86_64/descriptor.h @@ -0,0 +1,18 @@ +#include <stdint.h> + +struct descriptor_table_register_long +{ + uint16_t limit; + uint64_t base; +} __attribute__((packed, aligned(16))); + +struct segment_descriptor +{ + uint16_t limit0; + uint16_t base0; + uint8_t base16; + uint8_t access; + uint8_t flags_limit16; + uint8_t base24; +} __attribute__((packed, aligned(8))); + diff --git a/api/bits/x86_64/msr.h b/api/bits/x86_64/msr.h new file mode 100644 index 0000000..a25af7d --- /dev/null +++ b/api/bits/x86_64/msr.h @@ -0,0 +1,29 @@ +#include <stdint.h> + +#define MSR_INDEX_EFER 0xc0000080 +#define MSR_INDEX_STAR 0xc0000081 +#define MSR_INDEX_LSTAR 0xc0000082 + +union msr_efer +{ + uint64_t value; +}; + +union msr_star +{ + struct + { + uint32_t target_eip; + uint16_t syscall_segment_base; + uint16_t sysret_segment_base; + } + fields; + uint64_t value; +}; + +union msr_lstar +{ + uint64_t target_rip; + uint64_t value; +}; + |
