core+init: Instead of exporting an "arch" symbol for platform-specific code, use "usingnamespace".
This makes imports of platform-specific files way cleaner.
This commit is contained in:
parent
6acf83692f
commit
5f9514627b
@ -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"),
|
||||
|
@ -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");
|
||||
|
@ -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");
|
||||
|
@ -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");
|
||||
|
@ -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");
|
||||
|
@ -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");
|
||||
|
||||
|
@ -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");
|
||||
|
@ -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");
|
||||
|
@ -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");
|
||||
|
||||
|
@ -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");
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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,
|
||||
|
@ -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");
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user