Squash commits for public release

This commit is contained in:
2025-02-12 09:54:05 -05:00
commit 7118adc514
1108 changed files with 80873 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
#ifndef _KERNEL_PLATFORM_X86_REGISTERS_H
#define _KERNEL_PLATFORM_X86_REGISTERS_H
#include <libkern/types.h>
extern uintptr_t read_ip();
static inline uintptr_t read_cr2()
{
uintptr_t val;
asm volatile("mov %%cr2, %0"
: "=r"(val));
return val;
}
static inline uintptr_t read_cr3()
{
uintptr_t val;
asm volatile("mov %%cr3, %0"
: "=r"(val));
return val;
}
static inline uintptr_t read_sp()
{
uintptr_t val;
#ifdef BITS32
asm volatile("mov %%esp, %0"
: "=r"(val));
#else
asm volatile("mov %%rsp, %0"
: "=r"(val));
#endif
return val;
}
static inline uintptr_t read_bp()
{
uintptr_t val;
#ifdef BITS32
asm volatile("mov %%ebp, %0"
: "=r"(val));
#else
asm volatile("mov %%rbp, %0"
: "=r"(val));
#endif
return val;
}
static inline uintptr_t read_cr0()
{
uintptr_t val;
asm volatile("mov %%cr0, %0"
: "=r"(val));
return val;
}
static inline void write_cr0(uintptr_t val)
{
asm volatile("mov %0, %%cr0"
:
: "r"(val)
: "memory");
}
#endif /* _KERNEL_PLATFORM_X86_REGISTERS_H */