15static __inline
void lgdt(
const struct desc_ptr *dtr) {
20static __inline
void lldt(
uint16_t sel) {
25static __inline
void ltr(
uint16_t sel) {
30static __inline
void lidt(
const struct desc_ptr *dtr) {
35static __inline
void invlpg(
uint64_t addr) {
36 __asm
__volatile(
"invlpg (%0)" : :
"r" (addr) :
"memory");
40static __inline
uint64_t read_eflags(
void) {
42 __asm
__volatile(
"pushfq; popq %0" :
"=r" (rflags));
103static __inline
uint64_t rrcx(
void) {
110static __inline
uint64_t rrsp(
void) {
116static __inline
uint64_t rcr2(
void) {
128 ::
"c" (ecx),
"d" (
edx),
"a" (
eax) );
eax
Definition: intrinsic.h:125
__asm __volatile("wrmsr" ::"c"(ecx), "d"(edx), "a"(eax))
uint64_t val
Definition: intrinsic.h:123
__attribute__((always_inline)) static __inline void lcr3(uint64_t val)
Definition: intrinsic.h:9
edx
Definition: intrinsic.h:126
unsigned int uint32_t
Definition: stdint.h:26
unsigned long long int uint64_t
Definition: stdint.h:29
unsigned short int uint16_t
Definition: stdint.h:23