From 6a63714e6c4a72c09e1a59998eb632c9bbc97e74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Gr=C3=A9goire?= Date: Mon, 12 Oct 2026 15:02:48 -0400 Subject: [PATCH] all: rework source tree structure --- build.zig | 24 +++++++++++++++++------ src/ksyms.zig => build/ksyms_mod.zig | 0 build/run.zig | 2 +- src/{ => sys}/bootvid/bootvid.zig | 0 src/{ => sys}/bootvid/sun12x22-ascii.psf | Bin src/{ => sys}/ex/init.zig | 0 src/{ => sys}/ex/private.zig | 0 src/{ => sys}/ex/root.zig | 0 src/{ => sys}/ex/string.zig | 0 src/{ => sys}/ex/vmem.zig | 0 src/{ => sys}/ex/work.zig | 0 src/{ => sys}/kern/amd64/impl.zig | 0 src/{ => sys}/kern/amd64/init.zig | 0 src/{ => sys}/kern/amd64/int.zig | 0 src/{ => sys}/kern/amd64/locore.s | 0 src/{ => sys}/kern/cpu.zig | 0 src/{ => sys}/kern/dpc.zig | 0 src/{ => sys}/kern/event.zig | 0 src/{ => sys}/kern/init.zig | 0 src/{ => sys}/kern/ipi.zig | 0 src/{ => sys}/kern/ipl.zig | 0 src/{ => sys}/kern/log.zig | 0 src/{ => sys}/kern/log_ring.zig | 0 src/{ => sys}/kern/mutex.zig | 0 src/{ => sys}/kern/panic.zig | 0 src/{ => sys}/kern/private.zig | 0 src/{ => sys}/kern/queue.zig | 0 src/{ => sys}/kern/riscv64/impl.zig | 0 src/{ => sys}/kern/riscv64/int.zig | 0 src/{ => sys}/kern/riscv64/locore.s | 0 src/{ => sys}/kern/root.zig | 0 src/{ => sys}/kern/sched.zig | 0 src/{ => sys}/kern/shootdown.zig | 0 src/{ => sys}/kern/smr.zig | 0 src/{ => sys}/kern/spinlock.zig | 0 src/{ => sys}/kern/thread.zig | 0 src/{ => sys}/kern/time.zig | 0 src/{ => sys}/kern/timer.zig | 0 src/{ => sys}/kern/tunable.zig | 0 src/{ => sys}/kern/turnstile.zig | 0 src/{ => sys}/kern/wait.zig | 0 src/{ => sys}/kern/warden.zig | 0 src/{ => sys}/mm/amd64/impl.zig | 0 src/{ => sys}/mm/balance.zig | 0 src/{ => sys}/mm/heap.zig | 0 src/{ => sys}/mm/init.zig | 0 src/{ => sys}/mm/phys.zig | 0 src/{ => sys}/mm/pmap.zig | 0 src/{ => sys}/mm/private.zig | 0 src/{ => sys}/mm/riscv64/impl.zig | 0 src/{ => sys}/mm/root.zig | 0 src/{ => sys}/mm/tlb.zig | 0 src/{ => sys}/mm/zone.zig | 0 src/{ => sys}/platform/acpi/hpet.zig | 0 src/{ => sys}/platform/acpi/madt.zig | 0 src/{ => sys}/platform/acpi/root.zig | 0 src/{ => sys}/platform/acpi/timer.zig | 0 src/{ => sys}/platform/pc/ap.s | 0 src/{ => sys}/platform/pc/apic.zig | 0 src/{ => sys}/platform/pc/impl.zig | 0 src/{ => sys}/platform/pc/pvclock.zig | 0 src/{ => sys}/platform/pc/smp.zig | 0 src/{ => sys}/platform/pc/tsc.zig | 0 src/{ => sys}/platform/riscv64/impl.zig | 0 src/{ => sys}/platform/root.zig | 0 src/{ => sys}/proc/private.zig | 0 src/{ => sys}/proc/root.zig | 0 src/{ => sys}/proc/thread.zig | 0 src/{ => sys}/rcu/hashtable.zig | 0 src/{ => sys}/rcu/root.zig | 0 src/{ => sys}/root.zig | 2 +- src/{ => sys}/tests/fireworks.zig | 0 src/{ => sys}/tests/root.zig | 0 73 files changed, 20 insertions(+), 8 deletions(-) rename src/ksyms.zig => build/ksyms_mod.zig (100%) rename src/{ => sys}/bootvid/bootvid.zig (100%) rename src/{ => sys}/bootvid/sun12x22-ascii.psf (100%) rename src/{ => sys}/ex/init.zig (100%) rename src/{ => sys}/ex/private.zig (100%) rename src/{ => sys}/ex/root.zig (100%) rename src/{ => sys}/ex/string.zig (100%) rename src/{ => sys}/ex/vmem.zig (100%) rename src/{ => sys}/ex/work.zig (100%) rename src/{ => sys}/kern/amd64/impl.zig (100%) rename src/{ => sys}/kern/amd64/init.zig (100%) rename src/{ => sys}/kern/amd64/int.zig (100%) rename src/{ => sys}/kern/amd64/locore.s (100%) rename src/{ => sys}/kern/cpu.zig (100%) rename src/{ => sys}/kern/dpc.zig (100%) rename src/{ => sys}/kern/event.zig (100%) rename src/{ => sys}/kern/init.zig (100%) rename src/{ => sys}/kern/ipi.zig (100%) rename src/{ => sys}/kern/ipl.zig (100%) rename src/{ => sys}/kern/log.zig (100%) rename src/{ => sys}/kern/log_ring.zig (100%) rename src/{ => sys}/kern/mutex.zig (100%) rename src/{ => sys}/kern/panic.zig (100%) rename src/{ => sys}/kern/private.zig (100%) rename src/{ => sys}/kern/queue.zig (100%) rename src/{ => sys}/kern/riscv64/impl.zig (100%) rename src/{ => sys}/kern/riscv64/int.zig (100%) rename src/{ => sys}/kern/riscv64/locore.s (100%) rename src/{ => sys}/kern/root.zig (100%) rename src/{ => sys}/kern/sched.zig (100%) rename src/{ => sys}/kern/shootdown.zig (100%) rename src/{ => sys}/kern/smr.zig (100%) rename src/{ => sys}/kern/spinlock.zig (100%) rename src/{ => sys}/kern/thread.zig (100%) rename src/{ => sys}/kern/time.zig (100%) rename src/{ => sys}/kern/timer.zig (100%) rename src/{ => sys}/kern/tunable.zig (100%) rename src/{ => sys}/kern/turnstile.zig (100%) rename src/{ => sys}/kern/wait.zig (100%) rename src/{ => sys}/kern/warden.zig (100%) rename src/{ => sys}/mm/amd64/impl.zig (100%) rename src/{ => sys}/mm/balance.zig (100%) rename src/{ => sys}/mm/heap.zig (100%) rename src/{ => sys}/mm/init.zig (100%) rename src/{ => sys}/mm/phys.zig (100%) rename src/{ => sys}/mm/pmap.zig (100%) rename src/{ => sys}/mm/private.zig (100%) rename src/{ => sys}/mm/riscv64/impl.zig (100%) rename src/{ => sys}/mm/root.zig (100%) rename src/{ => sys}/mm/tlb.zig (100%) rename src/{ => sys}/mm/zone.zig (100%) rename src/{ => sys}/platform/acpi/hpet.zig (100%) rename src/{ => sys}/platform/acpi/madt.zig (100%) rename src/{ => sys}/platform/acpi/root.zig (100%) rename src/{ => sys}/platform/acpi/timer.zig (100%) rename src/{ => sys}/platform/pc/ap.s (100%) rename src/{ => sys}/platform/pc/apic.zig (100%) rename src/{ => sys}/platform/pc/impl.zig (100%) rename src/{ => sys}/platform/pc/pvclock.zig (100%) rename src/{ => sys}/platform/pc/smp.zig (100%) rename src/{ => sys}/platform/pc/tsc.zig (100%) rename src/{ => sys}/platform/riscv64/impl.zig (100%) rename src/{ => sys}/platform/root.zig (100%) rename src/{ => sys}/proc/private.zig (100%) rename src/{ => sys}/proc/root.zig (100%) rename src/{ => sys}/proc/thread.zig (100%) rename src/{ => sys}/rcu/hashtable.zig (100%) rename src/{ => sys}/rcu/root.zig (100%) rename src/{ => sys}/root.zig (97%) rename src/{ => sys}/tests/fireworks.zig (100%) rename src/{ => sys}/tests/root.zig (100%) diff --git a/build.zig b/build.zig index 7ddd434..4fdcaa9 100644 --- a/build.zig +++ b/build.zig @@ -32,7 +32,7 @@ pub fn build(b: *std.Build) void { const config_module = zonfig.createConfigModule(b, zonfig_dep, "config.zig.zon", ".config.zig.zon"); const ksyms_module = b.createModule(.{ - .root_source_file = b.path("src/ksyms.zig"), + .root_source_file = b.path("build/ksyms_mod.zig"), .optimize = optimize, }); @@ -70,9 +70,18 @@ pub fn build(b: *std.Build) void { }, }); + const boot_info_module = b.createModule(.{ + .root_source_file = b.path("src/loader/info.zig"), + .optimize = optimize, + .imports = &.{ + .{ .name = "arch", .module = arch_module }, + }, + }); + const kernel_nosym = addKernel(b, plat, optimize, config_module, ksyms_module, rtl_module, arch_module); kernel_nosym.root_module.addAssemblyFile(empty_ksyms_s); + kernel_nosym.root_module.addImport("boot_info", boot_info_module); b.step("kernel-nosym", "Build nosym kernel").dependOn(&kernel_nosym.step); @@ -88,11 +97,14 @@ pub fn build(b: *std.Build) void { const loader = addLoader(b, plat, optimize, config_module, rtl_module, arch_module); + kernel.root_module.addImport("boot_info", boot_info_module); + loader.root_module.addImport("boot_info", boot_info_module); + b.default_step.dependOn(&b.addInstallArtifact(loader, .{}).step); b.default_step.dependOn(&b.addInstallArtifact(kernel, .{}).step); const docs_module = b.createModule(.{ - .root_source_file = b.path("src/root.zig"), + .root_source_file = b.path("src/sys/root.zig"), .target = b.graph.host, .imports = &.{ .{ .name = "config", .module = config_module }, @@ -171,7 +183,7 @@ fn addKernel(b: *std.Build, plat: config.Platform, optimize: std.builtin.Optimiz const kernel = b.addExecutable(.{ .name = name, .root_module = b.createModule(.{ - .root_source_file = b.path("src/root.zig"), + .root_source_file = b.path("src/sys/root.zig"), .target = target, .optimize = optimize, }), @@ -220,11 +232,11 @@ fn addKernel(b: *std.Build, plat: config.Platform, optimize: std.builtin.Optimiz switch (plat.arch) { .x86_64 => { - kernel.root_module.addAssemblyFile(b.path("src/kern/amd64/locore.s")); - kernel.root_module.addAssemblyFile(b.path("src/platform/pc/ap.s")); + kernel.root_module.addAssemblyFile(b.path("src/sys/kern/amd64/locore.s")); + kernel.root_module.addAssemblyFile(b.path("src/sys/platform/pc/ap.s")); }, .riscv64 => { - kernel.root_module.addAssemblyFile(b.path("src/kern/riscv64/locore.s")); + kernel.root_module.addAssemblyFile(b.path("src/sys/kern/riscv64/locore.s")); }, else => {}, } diff --git a/src/ksyms.zig b/build/ksyms_mod.zig similarity index 100% rename from src/ksyms.zig rename to build/ksyms_mod.zig diff --git a/build/run.zig b/build/run.zig index 7b326ff..7f3e6f6 100644 --- a/build/run.zig +++ b/build/run.zig @@ -58,7 +58,7 @@ pub fn addRun(b: *std.Build, kernel: *std.Build.Step.Compile, loader: *std.Build switch (plat.arch) { .x86_64 => { - qemu.addArgs(&.{ "-serial", "stdio", "-m", "1G", "-smp", "1" }); + qemu.addArgs(&.{ "-serial", "stdio", "-m", "1G", "-smp", "4" }); if (!debug and builtin.target.os.tag == .linux and builtin.cpu.arch == .x86_64) qemu.addArgs(&.{ "-enable-kvm", "-cpu", "host,+invtsc" }); }, diff --git a/src/bootvid/bootvid.zig b/src/sys/bootvid/bootvid.zig similarity index 100% rename from src/bootvid/bootvid.zig rename to src/sys/bootvid/bootvid.zig diff --git a/src/bootvid/sun12x22-ascii.psf b/src/sys/bootvid/sun12x22-ascii.psf similarity index 100% rename from src/bootvid/sun12x22-ascii.psf rename to src/sys/bootvid/sun12x22-ascii.psf diff --git a/src/ex/init.zig b/src/sys/ex/init.zig similarity index 100% rename from src/ex/init.zig rename to src/sys/ex/init.zig diff --git a/src/ex/private.zig b/src/sys/ex/private.zig similarity index 100% rename from src/ex/private.zig rename to src/sys/ex/private.zig diff --git a/src/ex/root.zig b/src/sys/ex/root.zig similarity index 100% rename from src/ex/root.zig rename to src/sys/ex/root.zig diff --git a/src/ex/string.zig b/src/sys/ex/string.zig similarity index 100% rename from src/ex/string.zig rename to src/sys/ex/string.zig diff --git a/src/ex/vmem.zig b/src/sys/ex/vmem.zig similarity index 100% rename from src/ex/vmem.zig rename to src/sys/ex/vmem.zig diff --git a/src/ex/work.zig b/src/sys/ex/work.zig similarity index 100% rename from src/ex/work.zig rename to src/sys/ex/work.zig diff --git a/src/kern/amd64/impl.zig b/src/sys/kern/amd64/impl.zig similarity index 100% rename from src/kern/amd64/impl.zig rename to src/sys/kern/amd64/impl.zig diff --git a/src/kern/amd64/init.zig b/src/sys/kern/amd64/init.zig similarity index 100% rename from src/kern/amd64/init.zig rename to src/sys/kern/amd64/init.zig diff --git a/src/kern/amd64/int.zig b/src/sys/kern/amd64/int.zig similarity index 100% rename from src/kern/amd64/int.zig rename to src/sys/kern/amd64/int.zig diff --git a/src/kern/amd64/locore.s b/src/sys/kern/amd64/locore.s similarity index 100% rename from src/kern/amd64/locore.s rename to src/sys/kern/amd64/locore.s diff --git a/src/kern/cpu.zig b/src/sys/kern/cpu.zig similarity index 100% rename from src/kern/cpu.zig rename to src/sys/kern/cpu.zig diff --git a/src/kern/dpc.zig b/src/sys/kern/dpc.zig similarity index 100% rename from src/kern/dpc.zig rename to src/sys/kern/dpc.zig diff --git a/src/kern/event.zig b/src/sys/kern/event.zig similarity index 100% rename from src/kern/event.zig rename to src/sys/kern/event.zig diff --git a/src/kern/init.zig b/src/sys/kern/init.zig similarity index 100% rename from src/kern/init.zig rename to src/sys/kern/init.zig diff --git a/src/kern/ipi.zig b/src/sys/kern/ipi.zig similarity index 100% rename from src/kern/ipi.zig rename to src/sys/kern/ipi.zig diff --git a/src/kern/ipl.zig b/src/sys/kern/ipl.zig similarity index 100% rename from src/kern/ipl.zig rename to src/sys/kern/ipl.zig diff --git a/src/kern/log.zig b/src/sys/kern/log.zig similarity index 100% rename from src/kern/log.zig rename to src/sys/kern/log.zig diff --git a/src/kern/log_ring.zig b/src/sys/kern/log_ring.zig similarity index 100% rename from src/kern/log_ring.zig rename to src/sys/kern/log_ring.zig diff --git a/src/kern/mutex.zig b/src/sys/kern/mutex.zig similarity index 100% rename from src/kern/mutex.zig rename to src/sys/kern/mutex.zig diff --git a/src/kern/panic.zig b/src/sys/kern/panic.zig similarity index 100% rename from src/kern/panic.zig rename to src/sys/kern/panic.zig diff --git a/src/kern/private.zig b/src/sys/kern/private.zig similarity index 100% rename from src/kern/private.zig rename to src/sys/kern/private.zig diff --git a/src/kern/queue.zig b/src/sys/kern/queue.zig similarity index 100% rename from src/kern/queue.zig rename to src/sys/kern/queue.zig diff --git a/src/kern/riscv64/impl.zig b/src/sys/kern/riscv64/impl.zig similarity index 100% rename from src/kern/riscv64/impl.zig rename to src/sys/kern/riscv64/impl.zig diff --git a/src/kern/riscv64/int.zig b/src/sys/kern/riscv64/int.zig similarity index 100% rename from src/kern/riscv64/int.zig rename to src/sys/kern/riscv64/int.zig diff --git a/src/kern/riscv64/locore.s b/src/sys/kern/riscv64/locore.s similarity index 100% rename from src/kern/riscv64/locore.s rename to src/sys/kern/riscv64/locore.s diff --git a/src/kern/root.zig b/src/sys/kern/root.zig similarity index 100% rename from src/kern/root.zig rename to src/sys/kern/root.zig diff --git a/src/kern/sched.zig b/src/sys/kern/sched.zig similarity index 100% rename from src/kern/sched.zig rename to src/sys/kern/sched.zig diff --git a/src/kern/shootdown.zig b/src/sys/kern/shootdown.zig similarity index 100% rename from src/kern/shootdown.zig rename to src/sys/kern/shootdown.zig diff --git a/src/kern/smr.zig b/src/sys/kern/smr.zig similarity index 100% rename from src/kern/smr.zig rename to src/sys/kern/smr.zig diff --git a/src/kern/spinlock.zig b/src/sys/kern/spinlock.zig similarity index 100% rename from src/kern/spinlock.zig rename to src/sys/kern/spinlock.zig diff --git a/src/kern/thread.zig b/src/sys/kern/thread.zig similarity index 100% rename from src/kern/thread.zig rename to src/sys/kern/thread.zig diff --git a/src/kern/time.zig b/src/sys/kern/time.zig similarity index 100% rename from src/kern/time.zig rename to src/sys/kern/time.zig diff --git a/src/kern/timer.zig b/src/sys/kern/timer.zig similarity index 100% rename from src/kern/timer.zig rename to src/sys/kern/timer.zig diff --git a/src/kern/tunable.zig b/src/sys/kern/tunable.zig similarity index 100% rename from src/kern/tunable.zig rename to src/sys/kern/tunable.zig diff --git a/src/kern/turnstile.zig b/src/sys/kern/turnstile.zig similarity index 100% rename from src/kern/turnstile.zig rename to src/sys/kern/turnstile.zig diff --git a/src/kern/wait.zig b/src/sys/kern/wait.zig similarity index 100% rename from src/kern/wait.zig rename to src/sys/kern/wait.zig diff --git a/src/kern/warden.zig b/src/sys/kern/warden.zig similarity index 100% rename from src/kern/warden.zig rename to src/sys/kern/warden.zig diff --git a/src/mm/amd64/impl.zig b/src/sys/mm/amd64/impl.zig similarity index 100% rename from src/mm/amd64/impl.zig rename to src/sys/mm/amd64/impl.zig diff --git a/src/mm/balance.zig b/src/sys/mm/balance.zig similarity index 100% rename from src/mm/balance.zig rename to src/sys/mm/balance.zig diff --git a/src/mm/heap.zig b/src/sys/mm/heap.zig similarity index 100% rename from src/mm/heap.zig rename to src/sys/mm/heap.zig diff --git a/src/mm/init.zig b/src/sys/mm/init.zig similarity index 100% rename from src/mm/init.zig rename to src/sys/mm/init.zig diff --git a/src/mm/phys.zig b/src/sys/mm/phys.zig similarity index 100% rename from src/mm/phys.zig rename to src/sys/mm/phys.zig diff --git a/src/mm/pmap.zig b/src/sys/mm/pmap.zig similarity index 100% rename from src/mm/pmap.zig rename to src/sys/mm/pmap.zig diff --git a/src/mm/private.zig b/src/sys/mm/private.zig similarity index 100% rename from src/mm/private.zig rename to src/sys/mm/private.zig diff --git a/src/mm/riscv64/impl.zig b/src/sys/mm/riscv64/impl.zig similarity index 100% rename from src/mm/riscv64/impl.zig rename to src/sys/mm/riscv64/impl.zig diff --git a/src/mm/root.zig b/src/sys/mm/root.zig similarity index 100% rename from src/mm/root.zig rename to src/sys/mm/root.zig diff --git a/src/mm/tlb.zig b/src/sys/mm/tlb.zig similarity index 100% rename from src/mm/tlb.zig rename to src/sys/mm/tlb.zig diff --git a/src/mm/zone.zig b/src/sys/mm/zone.zig similarity index 100% rename from src/mm/zone.zig rename to src/sys/mm/zone.zig diff --git a/src/platform/acpi/hpet.zig b/src/sys/platform/acpi/hpet.zig similarity index 100% rename from src/platform/acpi/hpet.zig rename to src/sys/platform/acpi/hpet.zig diff --git a/src/platform/acpi/madt.zig b/src/sys/platform/acpi/madt.zig similarity index 100% rename from src/platform/acpi/madt.zig rename to src/sys/platform/acpi/madt.zig diff --git a/src/platform/acpi/root.zig b/src/sys/platform/acpi/root.zig similarity index 100% rename from src/platform/acpi/root.zig rename to src/sys/platform/acpi/root.zig diff --git a/src/platform/acpi/timer.zig b/src/sys/platform/acpi/timer.zig similarity index 100% rename from src/platform/acpi/timer.zig rename to src/sys/platform/acpi/timer.zig diff --git a/src/platform/pc/ap.s b/src/sys/platform/pc/ap.s similarity index 100% rename from src/platform/pc/ap.s rename to src/sys/platform/pc/ap.s diff --git a/src/platform/pc/apic.zig b/src/sys/platform/pc/apic.zig similarity index 100% rename from src/platform/pc/apic.zig rename to src/sys/platform/pc/apic.zig diff --git a/src/platform/pc/impl.zig b/src/sys/platform/pc/impl.zig similarity index 100% rename from src/platform/pc/impl.zig rename to src/sys/platform/pc/impl.zig diff --git a/src/platform/pc/pvclock.zig b/src/sys/platform/pc/pvclock.zig similarity index 100% rename from src/platform/pc/pvclock.zig rename to src/sys/platform/pc/pvclock.zig diff --git a/src/platform/pc/smp.zig b/src/sys/platform/pc/smp.zig similarity index 100% rename from src/platform/pc/smp.zig rename to src/sys/platform/pc/smp.zig diff --git a/src/platform/pc/tsc.zig b/src/sys/platform/pc/tsc.zig similarity index 100% rename from src/platform/pc/tsc.zig rename to src/sys/platform/pc/tsc.zig diff --git a/src/platform/riscv64/impl.zig b/src/sys/platform/riscv64/impl.zig similarity index 100% rename from src/platform/riscv64/impl.zig rename to src/sys/platform/riscv64/impl.zig diff --git a/src/platform/root.zig b/src/sys/platform/root.zig similarity index 100% rename from src/platform/root.zig rename to src/sys/platform/root.zig diff --git a/src/proc/private.zig b/src/sys/proc/private.zig similarity index 100% rename from src/proc/private.zig rename to src/sys/proc/private.zig diff --git a/src/proc/root.zig b/src/sys/proc/root.zig similarity index 100% rename from src/proc/root.zig rename to src/sys/proc/root.zig diff --git a/src/proc/thread.zig b/src/sys/proc/thread.zig similarity index 100% rename from src/proc/thread.zig rename to src/sys/proc/thread.zig diff --git a/src/rcu/hashtable.zig b/src/sys/rcu/hashtable.zig similarity index 100% rename from src/rcu/hashtable.zig rename to src/sys/rcu/hashtable.zig diff --git a/src/rcu/root.zig b/src/sys/rcu/root.zig similarity index 100% rename from src/rcu/root.zig rename to src/sys/rcu/root.zig diff --git a/src/root.zig b/src/sys/root.zig similarity index 97% rename from src/root.zig rename to src/sys/root.zig index 4f14a4f..ab33535 100644 --- a/src/root.zig +++ b/src/sys/root.zig @@ -7,7 +7,7 @@ pub const ksyms = @import("ksyms"); pub const arch = @import("arch"); pub const mm = @import("mm/root.zig"); pub const ps = @import("proc/root.zig"); -pub const BootInfo = @import("loader/info.zig"); +pub const BootInfo = @import("boot_info"); pub const tests = @import("tests/root.zig"); pub const rcu = @import("rcu/root.zig"); pub const bv = @import("bootvid/bootvid.zig"); diff --git a/src/tests/fireworks.zig b/src/sys/tests/fireworks.zig similarity index 100% rename from src/tests/fireworks.zig rename to src/sys/tests/fireworks.zig diff --git a/src/tests/root.zig b/src/sys/tests/root.zig similarity index 100% rename from src/tests/root.zig rename to src/sys/tests/root.zig