pub const gdt = @import("gdt.zig"); pub const tss = @import("tss.zig"); const arch = @import("../root.zig"); const common = @import("common"); const Queue = @import("Queue"); // Uses an intrusive queue pub const Task = struct { // Saved Registers regs: arch.interrupts.idt.SavedRegisters align(8), // Address Space context cr3_val: u64, // Instruction Pointer rip: u64, // Stack Pointer rsp: u64, // Next task basically node: Queue.Node = .{}, pub fn getPagingContext(self: Task) arch.mm.paging.Context { return .{ .cr3_val = self.cr3_val, .level5 = common.init_data.kernel_paging_ctx.level5, }; } };