From 5f9514627bea0387db6391b64d3992974bbac48e Mon Sep 17 00:00:00 2001 From: Gabriel Date: Sat, 22 Feb 2025 15:48:41 +0100 Subject: [PATCH] core+init: Instead of exporting an "arch" symbol for platform-specific code, use "usingnamespace". This makes imports of platform-specific files way cleaner. --- core/src/arch/cpu.zig | 4 ++-- core/src/arch/interrupts.zig | 2 +- core/src/arch/platform.zig | 2 +- core/src/arch/thread.zig | 2 +- core/src/arch/vmm.zig | 2 +- core/src/elf.zig | 4 ++-- core/src/main.zig | 6 +++--- core/src/pmm.zig | 4 ++-- core/src/sys/mem.zig | 2 +- core/src/sys/print.zig | 2 +- core/src/sys/sched.zig | 4 ++-- core/src/sys/syscall.zig | 6 +++--- core/src/thread.zig | 6 +++--- system/init/arch/vm.zig | 2 +- system/init/main.zig | 11 +++++------ 15 files changed, 29 insertions(+), 30 deletions(-) diff --git a/core/src/arch/cpu.zig b/core/src/arch/cpu.zig index 43ec9dc..62688e4 100644 --- a/core/src/arch/cpu.zig +++ b/core/src/arch/cpu.zig @@ -2,8 +2,8 @@ const std = @import("std"); const target = @import("builtin").target; const thread = @import("../thread.zig"); const pmm = @import("../pmm.zig"); -const vmm = @import("vmm.zig").arch; -const platform = @import("platform.zig").arch; +const vmm = @import("vmm.zig"); +const platform = @import("platform.zig"); pub const arch = switch (target.cpu.arch) { .x86_64 => @import("x86_64/cpu.zig"), diff --git a/core/src/arch/interrupts.zig b/core/src/arch/interrupts.zig index f9d1b19..c42209f 100644 --- a/core/src/arch/interrupts.zig +++ b/core/src/arch/interrupts.zig @@ -1,7 +1,7 @@ const std = @import("std"); const target = @import("builtin").target; -pub const arch = switch (target.cpu.arch) { +pub usingnamespace switch (target.cpu.arch) { .x86_64 => @import("x86_64/interrupts.zig"), else => { @compileError("unsupported architecture"); diff --git a/core/src/arch/platform.zig b/core/src/arch/platform.zig index 16cbe14..bbc6c4b 100644 --- a/core/src/arch/platform.zig +++ b/core/src/arch/platform.zig @@ -1,7 +1,7 @@ const std = @import("std"); const target = @import("builtin").target; -pub const arch = switch (target.cpu.arch) { +pub usingnamespace switch (target.cpu.arch) { .x86_64 => @import("x86_64/platform.zig"), else => { @compileError("unsupported architecture"); diff --git a/core/src/arch/thread.zig b/core/src/arch/thread.zig index acf241c..466b85d 100644 --- a/core/src/arch/thread.zig +++ b/core/src/arch/thread.zig @@ -1,7 +1,7 @@ const std = @import("std"); const target = @import("builtin").target; -pub const arch = switch (target.cpu.arch) { +pub usingnamespace switch (target.cpu.arch) { .x86_64 => @import("x86_64/thread.zig"), else => { @compileError("unsupported architecture"); diff --git a/core/src/arch/vmm.zig b/core/src/arch/vmm.zig index 8d396ce..81697b5 100644 --- a/core/src/arch/vmm.zig +++ b/core/src/arch/vmm.zig @@ -1,7 +1,7 @@ const std = @import("std"); const target = @import("builtin").target; -pub const arch = switch (target.cpu.arch) { +pub usingnamespace switch (target.cpu.arch) { .x86_64 => @import("x86_64/vmm.zig"), else => { @compileError("unsupported architecture"); diff --git a/core/src/elf.zig b/core/src/elf.zig index b4dd66e..c5c1088 100644 --- a/core/src/elf.zig +++ b/core/src/elf.zig @@ -1,7 +1,7 @@ const std = @import("std"); const target = @import("builtin").target; -const vmm = @import("arch/vmm.zig").arch; -const platform = @import("arch/platform.zig").arch; +const vmm = @import("arch/vmm.zig"); +const platform = @import("arch/platform.zig"); const pmm = @import("pmm.zig"); const debug = @import("arch/debug.zig"); diff --git a/core/src/main.zig b/core/src/main.zig index 6845e34..cfe340a 100644 --- a/core/src/main.zig +++ b/core/src/main.zig @@ -2,9 +2,9 @@ const std = @import("std"); const easyboot = @cImport(@cInclude("easyboot.h")); const debug = @import("arch/debug.zig"); const cpu = @import("arch/cpu.zig"); -const platform = @import("arch/platform.zig").arch; -const interrupts = @import("arch/interrupts.zig").arch; -const vmm = @import("arch/vmm.zig").arch; +const platform = @import("arch/platform.zig"); +const interrupts = @import("arch/interrupts.zig"); +const vmm = @import("arch/vmm.zig"); const multiboot = @import("multiboot.zig"); const pmm = @import("pmm.zig"); const thread = @import("thread.zig"); diff --git a/core/src/pmm.zig b/core/src/pmm.zig index e605d0f..e133272 100644 --- a/core/src/pmm.zig +++ b/core/src/pmm.zig @@ -1,7 +1,7 @@ const std = @import("std"); const easyboot = @cImport(@cInclude("easyboot.h")); -const platform = @import("arch/platform.zig").arch; -const vmm = @import("arch/vmm.zig").arch; +const platform = @import("arch/platform.zig"); +const vmm = @import("arch/vmm.zig"); const mmap = @import("mmap.zig"); const bmap = @import("lib/bitmap.zig"); const locking = @import("lib/spinlock.zig"); diff --git a/core/src/sys/mem.zig b/core/src/sys/mem.zig index c75bb28..7301084 100644 --- a/core/src/sys/mem.zig +++ b/core/src/sys/mem.zig @@ -1,4 +1,4 @@ -const platform = @import("../arch/platform.zig").arch; +const platform = @import("../arch/platform.zig"); const sys = @import("syscall.zig"); const pmm = @import("../pmm.zig"); diff --git a/core/src/sys/print.zig b/core/src/sys/print.zig index e0a5dfe..0c723c3 100644 --- a/core/src/sys/print.zig +++ b/core/src/sys/print.zig @@ -1,4 +1,4 @@ -const platform = @import("../arch/platform.zig").arch; +const platform = @import("../arch/platform.zig"); const sys = @import("syscall.zig"); const debug = @import("../arch/debug.zig"); diff --git a/core/src/sys/sched.zig b/core/src/sys/sched.zig index a4d74bc..865746d 100644 --- a/core/src/sys/sched.zig +++ b/core/src/sys/sched.zig @@ -1,11 +1,11 @@ const std = @import("std"); const system = @import("system"); -const platform = @import("../arch/platform.zig").arch; +const platform = @import("../arch/platform.zig"); const sys = @import("syscall.zig"); const thread = @import("../thread.zig"); const cpu = @import("../arch/cpu.zig"); const pmm = @import("../pmm.zig"); -const vmm = @import("../arch/vmm.zig").arch; +const vmm = @import("../arch/vmm.zig"); const RingBuffer = system.ring_buffer.RingBuffer; diff --git a/core/src/sys/syscall.zig b/core/src/sys/syscall.zig index f60d418..9c14fb5 100644 --- a/core/src/sys/syscall.zig +++ b/core/src/sys/syscall.zig @@ -1,6 +1,6 @@ const std = @import("std"); -const platform = @import("../arch/platform.zig").arch; -const print = @import("print.zig").print; +const platform = @import("../arch/platform.zig"); +const print = @import("print.zig"); const mem = @import("mem.zig"); const sched = @import("sched.zig"); @@ -15,7 +15,7 @@ pub const Arguments = struct { const SystemCall = *const fn (frame: *platform.Registers, args: *Arguments, retval: *isize) anyerror!void; -const syscalls = [_]SystemCall{ print, mem.allocFrame, mem.lockFrame, mem.freeFrame, sched.yield, sched.setPriority, sched.getPriority, sched.sleep, sched.setEventQueue }; +const syscalls = [_]SystemCall{ print.print, mem.allocFrame, mem.lockFrame, mem.freeFrame, sched.yield, sched.setPriority, sched.getPriority, sched.sleep, sched.setEventQueue }; pub fn invokeSyscall(number: usize, frame: *platform.Registers, args: *Arguments, retval: *isize) void { if (number >= syscalls.len) { diff --git a/core/src/thread.zig b/core/src/thread.zig index 5c706e2..7a4daba 100644 --- a/core/src/thread.zig +++ b/core/src/thread.zig @@ -1,14 +1,14 @@ const std = @import("std"); const system = @import("system"); -const vmm = @import("arch/vmm.zig").arch; -const platform = @import("arch/platform.zig").arch; +const vmm = @import("arch/vmm.zig"); +const platform = @import("arch/platform.zig"); const pmm = @import("pmm.zig"); const cpu = @import("arch/cpu.zig"); const locking = @import("lib/spinlock.zig"); const RingBuffer = system.ring_buffer.RingBuffer; -pub const arch = @import("arch/thread.zig").arch; +pub const arch = @import("arch/thread.zig"); pub const ThreadState = enum { Inactive, diff --git a/system/init/arch/vm.zig b/system/init/arch/vm.zig index 977478e..714111d 100644 --- a/system/init/arch/vm.zig +++ b/system/init/arch/vm.zig @@ -1,7 +1,7 @@ const std = @import("std"); const target = @import("builtin").target; -pub const arch = switch (target.cpu.arch) { +pub usingnamespace switch (target.cpu.arch) { .x86_64 => @import("x86_64/vm.zig"), else => { @compileError("unsupported architecture"); diff --git a/system/init/main.zig b/system/init/main.zig index f4c808d..8950d73 100644 --- a/system/init/main.zig +++ b/system/init/main.zig @@ -1,5 +1,5 @@ const system = @import("system"); -const vm = @import("arch/vm.zig").arch; +const vm = @import("arch/vm.zig"); const syscalls = system.syscalls; const buffer = system.ring_buffer; @@ -32,17 +32,16 @@ export fn _start(base: u64, address: u64) callconv(.C) noreturn { while (true) {} }; - var event_queue = setupKernelRingBuffer(base) catch { + const event_queue = setupKernelRingBuffer(base) catch { while (true) {} }; + _ = event_queue; + var counter: u64 = 0; while (true) : (counter += 4) { syscalls.sleep(1000); - - // Reading a random number from the ring buffer we share with the kernel :D - var data: [1]u8 = .{0}; - if (event_queue.read(@ptrCast(&data), 1)) syscalls.print(data[0]); + syscalls.print(counter); } }