feat(loader, kernel): impl part of loader and initialize kernel structure

This commit is contained in:
2026-04-11 09:42:09 +08:00
parent 1233ae9e9b
commit 34ccf69569
53 changed files with 1743 additions and 777 deletions

44
arch/x86_64/processor.zig Normal file
View File

@@ -0,0 +1,44 @@
pub fn readCr2() u64 {
return asm volatile (
\\ mov %cr2, %rax
: [ret] "={rax}" (-> u64),
:
: .{});
}
pub fn readCr3() u64 {
return asm volatile (
\\ mov %cr3, %rax
: [ret] "={rax}" (-> u64),
:
: .{});
}
pub const PrivilegeLevel = enum(u4) {
Kernel = 0,
User = 3,
};
pub const PtRegs = struct {
r15: usize,
r14: usize,
r13: usize,
r12: usize,
bp: usize,
bx: usize,
r11: usize,
r10: usize,
r9: usize,
r8: usize,
ax: usize,
cx: usize,
dx: usize,
si: usize,
di: usize,
code: usize,
ip: usize,
cs: usize,
flags: usize,
sp: usize,
ss: usize,
};