Microkernel thing OS experiment (Zig ⚡)
at dev 393 B view raw
1const std = @import("std"); 2const arch = @import("arch"); 3const Queue = @import("Queue"); 4const Task = arch.structures.Task; 5 6var task_queue: Queue = .{}; 7 8pub fn pushTask(task: *Task) void { 9 task_queue.enqueue(&task.node); 10} 11 12pub fn getNextTask() ?*Task { 13 const node = task_queue.dequeue() orelse return null; 14 const task: *Task = @fieldParentPtr("node", node); 15 return task; 16}