30#ifndef __X86_64_CPU_H__
31#define __X86_64_CPU_H__
37#define IA32_EFER 0xC0000080
38#define IA32_STAR 0xC0000081
39#define IA32_LSTAR 0xC0000082
40#define IA32_CSTAR 0xC0000083
41#define IA32_SFMASK 0xC0000084
43#define IA32_SYSENTER_CS 0x174
44#define IA32_SYSENTER_ESP 0x175
45#define IA32_SYSENTER_EIP 0x176
47#define IA32_EFLAGS_INTR (1<<9)
48#define IA32_EFLAGS_DIRF (1<<10)
50#define MSR_IA32_MISC_ENABLE 0x1A0
51#define MSR_IA32_ENERGY_PERF_BIAS 0x1B0
52#define MSR_IA32_PERF_CTL 0x199
53#define MSR_IA32_PERF_STATUS 0x198
54#define MSR_IA32_PM_ENABLE 0x770
55#define MSR_IA32_HWP_CAPABILITIES 0x771
56#define MSR_IA32_HWP_REQUEST_PKG 0x772
57#define MSR_IA32_HWP_INTERRUPT 0x773
58#define MSR_IA32_HWP_REQUEST 0x774
59#define MSR_IA32_HWP_PECI_REQUEST_INFO 0x775
60#define MSR_IA32_HWP_STATUS 0x777
61#define MSR_IA32_FS_BASE 0xC0000100
62#define MSR_IA32_GS_BASE 0xC0000101
63#define MSR_IA32_KERNELGS_BASE 0xC0000102
64#define IA32_EFER 0xC0000080
#define AU_EXTERN
Definition aurora.h:50
#define AU_EXPORT
Definition aurora.h:38
XETime t
Definition main.cpp:53
int timerTick
Definition main.cpp:59
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
Definition x86_64_cpu.h:127
uint64_t * au_current_thread
Definition x86_64_cpu.h:129
uint8_t cpu_id
Definition x86_64_cpu.h:128
TSS * kernel_tss
Definition x86_64_cpu.h:130
Definition x86_64_cpu.h:76
uint64_t rcx
Definition x86_64_cpu.h:89
uint64_t r8
Definition x86_64_cpu.h:84
uint64_t r13
Definition x86_64_cpu.h:79
uint64_t r14
Definition x86_64_cpu.h:78
uint64_t rdx
Definition x86_64_cpu.h:88
uint64_t r11
Definition x86_64_cpu.h:81
uint64_t rsp
Definition x86_64_cpu.h:95
uint64_t rbp
Definition x86_64_cpu.h:85
uint64_t ss
Definition x86_64_cpu.h:96
uint64_t rbx
Definition x86_64_cpu.h:90
uint64_t cs
Definition x86_64_cpu.h:93
uint64_t rsi
Definition x86_64_cpu.h:87
uint64_t rax
Definition x86_64_cpu.h:91
uint64_t rdi
Definition x86_64_cpu.h:86
uint64_t r12
Definition x86_64_cpu.h:80
uint64_t rflags
Definition x86_64_cpu.h:94
uint64_t r15
Definition x86_64_cpu.h:77
uint64_t r9
Definition x86_64_cpu.h:83
uint64_t rip
Definition x86_64_cpu.h:92
uint64_t r10
Definition x86_64_cpu.h:82
Definition x86_64_cpu.h:68
_stack_frame_ * baseptr
Definition x86_64_cpu.h:69
size_t rip
Definition x86_64_cpu.h:70
Definition x86_64_cpu.h:114
size_t rsp[3]
Definition x86_64_cpu.h:116
size_t IST[7]
Definition x86_64_cpu.h:118
uint16_t resv4
Definition x86_64_cpu.h:120
uint16_t iomapbase
Definition x86_64_cpu.h:121
uint32_t reserved
Definition x86_64_cpu.h:115
size_t reserved2
Definition x86_64_cpu.h:117
size_t resv3
Definition x86_64_cpu.h:119
Definition x86_64_cpu.h:101
stack_frame * baseptr
Definition x86_64_cpu.h:102
size_t rflags
Definition x86_64_cpu.h:106
size_t rip
Definition x86_64_cpu.h:104
size_t cs
Definition x86_64_cpu.h:105
size_t ss
Definition x86_64_cpu.h:108
size_t rsp
Definition x86_64_cpu.h:107
size_t error
Definition x86_64_cpu.h:103
bool x86_64_is_cpu_fxsave_supported()
Definition x86_64_cpu.cpp:165
void x86_64_initialise_syscall()
Definition x86_64_cpu.cpp:270
AU_EXTERN AU_EXPORT void x86_64_udelay(uint64_t usec)
Definition x86_64_cpu.cpp:504
void x86_64_calculate_ticks(uint64_t milliseconds, uint64_t subsec, uint64_t *out_milliseconds, uint64_t *out_subsec)
Definition x86_64_cpu.cpp:485
struct _stack_frame_ stack_frame
struct _regs_ctx_ x86_64_cpu_regs_t
void x86_64_hal_cpu_feature_enable()
Definition x86_64_cpu.cpp:128
void x86_64_enable_syscall_ext()
Definition x86_64_cpu.cpp:55
void x86_64_cpu_initialize(uint8_t num_cpu)
Definition x86_64_cpu.cpp:203
uint64_t x86_64_cpu_get_mhz()
Definition x86_64_cpu.cpp:466
void x86_64_init_user_ap(size_t bit)
Definition x86_64_cpu.cpp:94
uint64_t cpu_read_tsc()
Definition x86_64_cpu.cpp:283
void updateTicks(uint64_t ticks, uint64_t *timerTick, uint64_t *timerSubticks)
Definition x86_64_cpu.cpp:411
void x86_64_init_user(size_t bit)
Definition x86_64_cpu.cpp:66
TSS * x86_64_get_tss()
Definition x86_64_cpu.cpp:121
void x86_64_measure_cpu_speed()
Definition x86_64_cpu.cpp:418
uint64_t x86_64_cpu_msi_address(uint64_t *data, size_t vector, uint32_t processor, uint8_t edge, uint8_t deassert)
Definition x86_64_cpu.cpp:177
int x86_64_gettimeofday(timeval *t)
Definition x86_64_cpu.cpp:470
void x86_64_set_ap_start_bit(bool value)
Definition x86_64_cpu.cpp:260