feat(loader, kernel): impl part of loader and initialize kernel structure
This commit is contained in:
44
arch/x86_64/processor.zig
Normal file
44
arch/x86_64/processor.zig
Normal 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,
|
||||
};
|
||||
Reference in New Issue
Block a user