30#ifndef __X86_64_LOW_LEVEL_H__
31#define __X86_64_LOW_LEVEL_H__
64extern "C" void x64_cpuid(
size_t page,
size_t* a,
size_t* b,
size_t* c,
size_t* d,
size_t subpage = 0);
124extern "C" void x64_lgdt(
void* location);
125extern "C" void x64_sgdt(
void* location);
129extern "C" bool x64_lock_test(
volatile size_t *lock,
size_t old_value,
size_t new_value);
#define AU_EXTERN
Definition aurora.h:50
#define AU_EXPORT
Definition aurora.h:38
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
uint16_t x64_gs_readw(size_t offset)
void x64_lgdt(void *location)
GDT & IDT Function.
void x64_write_cr0(size_t)
AU_EXTERN AU_EXPORT void x64_sti()
void flush_tlb(void *addr)
TLB Flush.
void x64_set_kstack(void *ktss, size_t stack)
void x64_fxsave(uint8_t *location)
void x64_lidt(void *location)
Interrupt Descriptor Table functions.
AU_EXTERN AU_EXPORT void x64_cli()
void x64_atom_exchange(size_t r1, size_t r2)
uint32_t x64_inportd(uint16_t port)
uint64_t x64_gs_readq(size_t offset)
void x64_outportd(uint16_t port, uint32_t data)
void x64_enter_user(uint64_t stack, uint64_t entry_addr, uint64_t cs, uint64_t ss)
void x64_stmxcsr(uint32_t *location)
size_t x64_read_cr0()
Control Register.
void x64_write_msr(size_t msr, uint64_t data)
void x64_gs_writeq(size_t offset, uint64_t val)
void x64_ltr(uint16_t seg)
void x64_fs_writew(size_t offset, uint16_t val)
void x64_outportw(uint16_t port, uint16_t data)
void x64_sidt(void *location)
bool x64_lock_test(volatile size_t *lock, size_t old_value, size_t new_value)
size_t x64_get_kstack(void *ktss)
uint8_t x64_gs_readb(size_t offset)
void x64_write_cr4(size_t)
uint16_t x64_inportw(uint16_t port)
void x64_ldmxcsr(uint32_t *location)
uint64_t x64_kesp_get_top()
uint64_t x64_read_msr(size_t msr)
MSR functions.
void x64_outportb(uint16_t port, uint8_t data)
void x64_gs_writeb(size_t offset, uint8_t val)
void x64_fs_writeq(size_t offset, uint64_t val)
void x64_rdtsc(uint32_t *hi, uint32_t *lo)
void x64_fs_writeb(size_t offset, uint8_t val)
uint16_t x64_fs_readw(size_t offset)
void x64_sgdt(void *location)
void x64_fs_writed(size_t offset, uint32_t val)
uint8_t x64_fs_readb(size_t offset)
void x64_gs_writew(size_t offset, uint16_t val)
void x64_cpuid(size_t page, size_t *a, size_t *b, size_t *c, size_t *d, size_t subpage=0)
x64_cpuid
void x64_gs_writed(size_t offset, uint32_t val)
void x64_fxrstor(uint8_t *location)
uint64_t x64_fs_readq(size_t offset)
uint32_t x64_gs_readd(size_t offset)
void x64_write_cr3(size_t)
uint8_t x64_inportb(uint16_t port)
in & out port functions
uint32_t x64_fs_readd(size_t offset)