+46
-184
components/ukernel/arch/amd64/boot.zig
+46
-184
components/ukernel/arch/amd64/boot.zig
······pub export var mp: limine.SmpMpFeature.MpRequest linksection(".limine_reqs") = .{ .flags = .{ .x2apic = true } };·········-const star_value: u64 = 0 | @as(u64, arch.structures.gdt.StandardGdt.selectors.kernel_code) << 32 | (@as(u64, arch.structures.gdt.StandardGdt.selectors.tss_desc + 8) | 3) << 48;-log.info("usercode64 GDT 0x{x}, userdata64 GDT 0x{x}", .{ arch.structures.gdt.StandardGdt.selectors.user_code, arch.structures.gdt.StandardGdt.selectors.user_data });-const canvas: [*]u8 = @ptrFromInt(common.init_data.bootmem.allocMem(fb.width * fb.height * fb.bypp) catch @panic("Couldn't allocate a canvas"));
+32
-2
components/ukernel/arch/amd64/instructions/cpuid.zig
+32
-2
components/ukernel/arch/amd64/instructions/cpuid.zig
···
+40
-7
components/ukernel/arch/amd64/interrupts/apic.zig
+40
-7
components/ukernel/arch/amd64/interrupts/apic.zig
·········+arch.interrupts.idt.add_handler(.{ .interrupt = 0xFF }, u64, spurious_interrupt_handler, 3, 0);······-pub fn spurious_interrupt_handler(_: *arch.interrupts.idt.InterruptFrame(u64)) callconv(.{ .x86_64_sysv = .{} }) void {-pub fn periodic_handler(stack_trace: *arch.interrupts.idt.InterruptFrame(u64)) callconv(.{ .x86_64_sysv = .{} }) void {
+12
-10
components/ukernel/arch/amd64/interrupts/idt.zig
+12
-10
components/ukernel/arch/amd64/interrupts/idt.zig
···-const DefinedHandler = *const fn (*InterruptFrame(u64)) callconv(.{ .x86_64_sysv = .{} }) void;······-add_handler(.{ .exception = .general_protection_fault }, arch.interrupts.general_protection_fault, 3, 0);···+pub fn add_handler(interrupt: Interrupt, comptime E: type, handler: InterruptHandler(E), dpl: u2, ist: u3) void {
+3
-2
components/ukernel/arch/amd64/interrupts/pic.zig
+3
-2
components/ukernel/arch/amd64/interrupts/pic.zig
·········-pub fn spurious_handler(_: *arch.interrupts.idt.InterruptFrame(u64)) callconv(.{ .x86_64_sysv = .{} }) void {
+96
-6
components/ukernel/arch/amd64/interrupts/root.zig
+96
-6
components/ukernel/arch/amd64/interrupts/root.zig
······+const star_value: u64 = 0 | @as(u64, arch.structures.gdt.StandardGdt.selectors.kernel_code) << 32 | (@as(u64, arch.structures.gdt.StandardGdt.selectors.tss_desc + 8) | 3) << 48;std.log.err("RAX: 0x{x:0>16}, RBX: 0x{x:0>16}, RCX: 0x{x:0>16}, RDX: 0x{x:0>16}", .{ frame.regs.rax, frame.regs.rbx, frame.regs.rcx, frame.regs.rdx });std.log.err("RSI: 0x{x:0>16}, RDI: 0x{x:0>16}, RBP: 0x{x:0>16}, RSP: 0x{x:0>16}", .{ frame.regs.rsi, frame.regs.rdi, frame.regs.rbp, frame.rsp });···std.log.err("RFL: 0x{x:0>16}, RIP: 0x{x:0>16}, CS: 0x{x:0>16}, SS: 0x{x:0>16}", .{ frame.eflags, frame.rip, frame.cs, frame.ss });-pub fn unhandled_interrupt(frame: *idt.InterruptFrame(u64)) callconv(.{ .x86_64_sysv = .{} }) void {std.log.err("Unhandled interrupt (0x{x} : {s})!!!", .{ frame.int_num.interrupt, exception_name });···-pub fn breakpoint(stack_frame: *idt.InterruptFrame(u64)) callconv(.{ .x86_64_sysv = .{} }) void {-pub fn double_fault(stack_frame: *idt.InterruptFrame(u64)) callconv(.{ .x86_64_sysv = .{} }) void {-pub fn general_protection_fault(stack_frame: *idt.InterruptFrame(idt.SelectorErrorCode)) callconv(.{ .x86_64_sysv = .{} }) void {+pub fn general_protection_fault(stack_frame: *idt.InterruptFrame(idt.SelectorErrorCode)) callconv(idt.CallConv) void {···+idt.add_handler(.{ .exception = .general_protection_fault }, idt.SelectorErrorCode, arch.interrupts.general_protection_fault, 3, 0);+log.info("usercode64 GDT 0x{x}, userdata64 GDT 0x{x}", .{ arch.structures.gdt.StandardGdt.selectors.user_code, arch.structures.gdt.StandardGdt.selectors.user_data });
+3
-1
components/ukernel/arch/amd64/mm/paging.zig
+3
-1
components/ukernel/arch/amd64/mm/paging.zig
···-pub fn page_fault_handler(stack_frame: *idt.InterruptFrame(u64)) callconv(.{ .x86_64_sysv = .{} }) void {+pub fn page_fault_handler(stack_frame: *idt.InterruptFrame(u64)) callconv(idt.CallConv) void {+std.log.err("Error CR2: 0x{x:0>16}, Error Code: 0x{x:0>16}", .{ arch.registers.ControlRegisters.Cr2.read(), stack_frame.error_code });
+7
-15
components/ukernel/arch/amd64/root.zig
+7
-15
components/ukernel/arch/amd64/root.zig
······
+4
components/ukernel/arch/amd64/tsc.zig
+4
components/ukernel/arch/amd64/tsc.zig
······
+9
-17
components/ukernel/build.zig
+9
-17
components/ukernel/build.zig
·········
+9
-15
components/ukernel/common/aux.zig
+9
-15
components/ukernel/common/aux.zig
······+const canvas: [*]u8 = @ptrFromInt(common.init_data.bootmem.allocMem(fb.width * fb.height * fb.bypp) catch @panic("Couldn't allocate a canvas"));
+3
-2
components/ukernel/common/mm/paging.zig
+3
-2
components/ukernel/common/mm/paging.zig
·········
+63
components/ukernel/common/root.zig
+63
components/ukernel/common/root.zig
···