6#ifndef ZEPHYR_INCLUDE_ARCH_X86_MSR_H_
7#define ZEPHYR_INCLUDE_ARCH_X86_MSR_H_
15#define X86_TIME_STAMP_COUNTER_MSR 0x00000010
17#define X86_SPEC_CTRL_MSR 0x00000048
18#define X86_SPEC_CTRL_MSR_IBRS BIT(0)
19#define X86_SPEC_CTRL_MSR_SSBD BIT(2)
21#define X86_APIC_BASE_MSR 0x0000001b
22#define X86_APIC_BASE_MSR_X2APIC BIT(10)
24#define X86_MTRR_DEF_TYPE_MSR 0x000002ff
25#define X86_MTRR_DEF_TYPE_MSR_ENABLE BIT(11)
27#define X86_X2APIC_BASE_MSR 0x00000800
29#define X86_U_CET_MSR 0x000006A0
31#define X86_S_CET_MSR 0x000006A2
32#define X86_S_CET_MSR_SHSTK BIT(0)
33#define X86_S_CET_MSR_WR_SHSTK BIT(1)
34#define X86_S_CET_MSR_ENDBR BIT(2)
35#define X86_S_CET_MSR_NO_TRACK BIT(4)
37#define X86_S_CET_MSR_SHSTK_EN (X86_S_CET_MSR_SHSTK | \
38 X86_S_CET_MSR_WR_SHSTK)
40#define X86_INTERRUPT_SSP_TABLE_MSR 0x00006A8
42#define X86_EFER_MSR 0xC0000080U
43#define X86_EFER_MSR_SCE BIT(0)
44#define X86_EFER_MSR_LME BIT(8)
45#define X86_EFER_MSR_NXE BIT(11)
51#define X86_STAR_MSR 0xC0000081U
54#define X86_LSTAR_MSR 0xC0000082U
57#define X86_FMASK_MSR 0xC0000084U
59#define X86_FS_BASE 0xC0000100U
60#define X86_GS_BASE 0xC0000101U
61#define X86_KERNEL_GS_BASE 0xC0000102U
73static inline void z_x86_msr_write(
unsigned int msr,
uint64_t data)
78 __asm__
volatile (
"wrmsr" : :
"c"(msr),
"a"(low),
"d"(high));
83static inline uint64_t z_x86_msr_read(
unsigned int msr)
93 __asm__
volatile (
"rdmsr" :
"=a" (rv.lo),
"=d" (rv.hi) :
"c" (msr));
100static inline uint64_t z_x86_msr_read(
unsigned int msr)
104 __asm__
volatile(
"rdmsr" :
"=A" (ret) :
"c" (msr));
irp hi
Definition asm-macro-32-bit-gnu.h:10
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT64_TYPE__ uint64_t
Definition stdint.h:91