+2
-1
assets/limine.conf
+2
-1
assets/limine.conf
+12
-5
build.zig
+12
-5
build.zig
···const ukernel_inst = b.addInstallFile(ukernel_artifact.getEmittedBin(), arch.kernelExeName());
+3
-4
build.zig.zon
+3
-4
build.zig.zon
···-.url = "git+https://codeberg.org/Limine/Limine?ref=v9.x-binary#acf1e35c4685dba7ef271013db375a727c340ff7",+.url = "git+https://codeberg.org/Limine/Limine?ref=v10.x-binary#648e33afd153bdbf780ba123e45997428796395d",
+2
components/root_server/build.zig
+2
components/root_server/build.zig
···const arch = b.option(build_helpers.Architecture, "arch", "The target root_server architecture") orelse .amd64;···
+6
-2
components/root_server/src/main.zig
+6
-2
components/root_server/src/main.zig
···
+1
-1
components/ukernel/arch/aarch64/boot.zig
+1
-1
components/ukernel/arch/aarch64/boot.zig
···
+61
-183
components/ukernel/arch/amd64/boot.zig
+61
-183
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 tasks_buf: [*]arch.structures.Task = @ptrFromInt(common.init_data.bootmem.allocMem(std.heap.pageSize()) catch {+const tasks_scratch: []arch.structures.Task = tasks_buf[0 .. std.heap.pageSize() / @sizeOf(arch.structures.Task)];-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
···
+57
-11
components/ukernel/arch/amd64/interrupts/apic.zig
+57
-11
components/ukernel/arch/amd64/interrupts/apic.zig
·········+arch.interrupts.idt.add_handler(.{ .interrupt = 0xFF }, u64, spurious_interrupt_handler, 0, 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 {
+15
-11
components/ukernel/arch/amd64/interrupts/idt.zig
+15
-11
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 {
+112
-6
components/ukernel/arch/amd64/interrupts/root.zig
+112
-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, 0, 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 });
+24
-8
components/ukernel/arch/amd64/mm/paging.zig
+24
-8
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 });
+25
-18
components/ukernel/arch/amd64/root.zig
+25
-18
components/ukernel/arch/amd64/root.zig
······const buf: [*]u8 = @ptrFromInt(common.init_data.bootmem.allocMem(total_required_size) catch |err| {const tss_buf: [*]Tss = @ptrCast(@alignCast(buf[gdt_size * cpu_count ..][0 .. tss_size * cpu_count]));
+24
components/ukernel/arch/amd64/structures/root.zig
+24
components/ukernel/arch/amd64/structures/root.zig
···
+4
components/ukernel/arch/amd64/tsc.zig
+4
components/ukernel/arch/amd64/tsc.zig
······
+12
-17
components/ukernel/build.zig
+12
-17
components/ukernel/build.zig
······
+4
components/ukernel/build.zig.zon
+4
components/ukernel/build.zig.zon
···+.url = "git+https://tangled.org/@sydney.blue/Queue.zig?ref=dev#6c0760e8a233c1d59554a40a87f0ef293a9697f3",
-89
components/ukernel/common/aux/root.zig
-89
components/ukernel/common/aux/root.zig
···
+83
components/ukernel/common/aux.zig
+83
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"));
+4
-5
components/ukernel/common/loader.zig
+4
-5
components/ukernel/common/loader.zig
······
+3
-2
components/ukernel/common/mm/paging.zig
+3
-2
components/ukernel/common/mm/paging.zig
·········
+81
-2
components/ukernel/common/root.zig
+81
-2
components/ukernel/common/root.zig
···
+16
components/ukernel/common/scheduler.zig
+16
components/ukernel/common/scheduler.zig
···