18 #define MSR_IA32_STAR 0xc0000081 19 #define MSR_IA32_LSTAR 0xc0000082 20 #define MSR_IA32_FMASK 0xc0000084 33 cpuid(0x80000001, ®s);
37 if (!(regs.
rdx & (1 << 11))) {
44 star &= 0x00000000ffffffff;
__forceinline uint64_t rdmsr(uint32_t id)
__forceinline void invalid_opcode()
void syscall_init()
Set up the CPU to handle system calls.
__forceinline void wrmsr(uint32_t id, uint64_t value)
Memory segment definitions.
__forceinline void cpuid(uint32_t code, registers4_t *regs)
#define SEGMENT_SELECTOR_USER_CODE
Interrupt handling operations.
x86 CPU-specific function implementations.
#define SEGMENT_SELECTOR_KERNEL_CODE
A record describing the first 4 general-purpose registers.
static void syscall_handle()