// === Exported Modules === pub const private = @import("private.zig"); const p = private; // === Exported types === pub const Ipl = p.ipl.Ipl; pub const SpinLock = p.spinlock.SpinLock; pub const QSpinLock = p.spinlock.QSpinLock; pub const Thread = p.thread.Thread; pub const Dpc = p.dpc.Dpc; pub const TimeCounter = p.time.TimeCounter; pub const Timer = p.timer.Timer; pub const Console = p.log.Console; pub const CpuLocal = p.cpu.CpuLocal; pub const ExportedCpuLocal = p.cpu.ExportedCpuLocal; pub const CpuMask = p.cpu.CpuMask; pub const AtomicCpuMask = p.cpu.AtomicCpuMask; pub const Event = p.event.Event; pub const Queue = p.queue.Queue; pub const Mutex = p.mutex.Mutex; pub const ShootdownState = p.shootdown.ShootdownState; // === Exported Interfaces === pub const panic = p.panic.panic; pub const ipl = struct { pub const raise = p.ipl.raise; pub const lower = p.ipl.lower; pub const set_hardware = p.ipl.set_hardware; pub const current = p.ipl.current; }; pub const thread = struct { pub const init = p.thread.init; }; pub const dpc = struct { pub const enqueue = p.dpc.enqueue; }; pub const time = struct { pub const register_source = p.time.register_source; pub const read_time = p.time.read_time; pub const best = p.time.best; pub const sleep = p.time.sleep; }; pub const sched = struct { pub const enqueue = p.sched.enqueue; pub const block = p.sched.block; pub const unblock = p.sched.unblock; pub const late_init = p.sched.late_init; }; pub const timer = struct { pub const set = p.timer.set; pub const cancel = p.timer.cancel; }; pub const wait = struct { pub const wait_one = p.wait.wait_one; pub const wait_any = p.wait.wait_any; }; pub const log = struct { pub const register_console = p.log.register_console; pub const log = p.log.log; pub const ringbuffer = &p.log.ringbuffer; pub const event = &p.log.event; }; pub const cpu = struct { pub const current = p.cpu.current; }; pub const shootdown = struct { pub const submit = p.shootdown.submit; pub const shootdowns = &p.shootdown.shootdowns; }; /// Number of CPUs on the system pub var ncpus: usize = 0;