init: Fix a few errors
This commit is contained in:
parent
930f69c498
commit
43bb21af0b
@ -15,7 +15,8 @@ const PhysFrame = struct {
|
||||
}
|
||||
|
||||
pub fn virtualPointer(self: *const PhysFrame, comptime T: type, base: usize) *T {
|
||||
return @ptrFromInt(self.virtualAddress(base));
|
||||
const virt = self.virtualAddress(base);
|
||||
return @ptrFromInt(virt);
|
||||
}
|
||||
};
|
||||
|
||||
@ -107,7 +108,7 @@ fn setUpParentPageTableEntry(mapper: *const MemoryMapper, pte: *PageTableEntry,
|
||||
const frame = PhysFrame{ .address = try kernel.allocFrame() };
|
||||
pte.present = 1;
|
||||
pte.setAddress(frame.address);
|
||||
getTable(pte, mapper.base).* = std.mem.zeroes(PageDirectory);
|
||||
getTable(mapper, pte).* = std.mem.zeroes(PageDirectory);
|
||||
}
|
||||
if (hasFlag(flags, Flags.ReadWrite) == 1) pte.read_write = 1;
|
||||
if (hasFlag(flags, Flags.User) == 1) pte.user = 1;
|
||||
|
@ -8,7 +8,13 @@ export fn _start(base: u64, address: u64) callconv(.C) noreturn {
|
||||
kernel.print(address);
|
||||
kernel.print(@intFromPtr(mapper.directory));
|
||||
|
||||
vm.map(&mapper, 0x6000000, kernel.allocFrame(), @intFromEnum(vm.Flags.ReadWrite) | @intFromEnum(vm.Flags.User));
|
||||
const phys = kernel.allocFrame() catch {
|
||||
while (true) {}
|
||||
};
|
||||
|
||||
vm.map(&mapper, 0x6000000, .{ .address = phys }, @intFromEnum(vm.Flags.ReadWrite) | @intFromEnum(vm.Flags.User)) catch {
|
||||
while (true) {}
|
||||
};
|
||||
|
||||
var counter: u64 = 0;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user