diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/hwi.zig | 1 | ||||
-rw-r--r-- | src/kernel.zig | 1 | ||||
-rw-r--r-- | src/lib/Console.zig | 1 | ||||
-rw-r--r-- | src/lib/instructions.zig | 9 | ||||
-rw-r--r-- | src/lib/interrupts.zig | 1 | ||||
-rw-r--r-- | src/lib/paging.zig | 1 | ||||
-rw-r--r-- | src/lib/plic.zig | 1 | ||||
-rw-r--r-- | src/lib/process.zig | 5 | ||||
-rw-r--r-- | src/lib/sbi/debug_console.zig | 1 | ||||
-rw-r--r-- | src/lib/sbi/legacy.zig | 1 | ||||
-rw-r--r-- | src/lib/sbi/time.zig | 8 | ||||
-rw-r--r-- | src/lib/syscall.zig | 1 |
12 files changed, 4 insertions, 27 deletions
diff --git a/src/hwi.zig b/src/hwi.zig index 7d908fa..b8736bb 100644 --- a/src/hwi.zig +++ b/src/hwi.zig @@ -4,7 +4,6 @@ const builtin = @import("builtin"); const std = @import("std"); - const hwinfo = @import("lib/hwinfo.zig"); pub fn main() !void { diff --git a/src/kernel.zig b/src/kernel.zig index e31ba7b..c7c02cf 100644 --- a/src/kernel.zig +++ b/src/kernel.zig @@ -3,7 +3,6 @@ // SPDX-License-Identifier: AGPL-3.0-or-later const std = @import("std"); - const Console = @import("lib/Console.zig"); const hwinfo = @import("lib/hwinfo.zig"); const instructions = @import("lib/instructions.zig"); diff --git a/src/lib/Console.zig b/src/lib/Console.zig index 1e2920d..8a64406 100644 --- a/src/lib/Console.zig +++ b/src/lib/Console.zig @@ -3,7 +3,6 @@ // SPDX-License-Identifier: AGPL-3.0-or-later const std = @import("std"); - const debug_console = @import("sbi/debug_console.zig"); const legacy = @import("sbi/legacy.zig"); diff --git a/src/lib/instructions.zig b/src/lib/instructions.zig index d9e5bf8..8c5a4ee 100644 --- a/src/lib/instructions.zig +++ b/src/lib/instructions.zig @@ -3,7 +3,6 @@ // SPDX-License-Identifier: AGPL-3.0-or-later const std = @import("std"); - const interrupts = @import("interrupts.zig"); const paging = @import("paging.zig"); @@ -50,13 +49,6 @@ pub const SbiRet = struct { val: isize, }; -// # Arguments -// -// * ext_id: Extension ID -// * fn_id: Function ID (within extension) -// * a0: Argument 0 -// * a1: Argument 1 -// * a2: Argument 2 pub fn ecall(ext_id: usize, fn_id: usize, a0: usize, a1: usize, a2: usize) SbiRet { var ret = SbiRet{ .err = 0, .val = 0 }; @@ -90,6 +82,7 @@ pub const sip = Csr(interrupts.Enable, "sip"); pub const sscratch = Csr(usize, "sscratch"); pub const sepc = Csr(usize, "sepc"); pub const stval = Csr(usize, "stval"); +pub const time = Csr(usize, "time"); pub fn Csr(comptime T: type, csr: []const u8) type { if (csr.len > 8) @compileError("CSR name length exceeds 8 characters"); diff --git a/src/lib/interrupts.zig b/src/lib/interrupts.zig index f68a5f1..086e38e 100644 --- a/src/lib/interrupts.zig +++ b/src/lib/interrupts.zig @@ -3,7 +3,6 @@ // SPDX-License-Identifier: AGPL-3.0-or-later const std = @import("std"); - const Console = @import("Console.zig"); const TrapFrame = @import("TrapFrame.zig"); const instructions = @import("instructions.zig"); diff --git a/src/lib/paging.zig b/src/lib/paging.zig index 31f4df1..84bc7dc 100644 --- a/src/lib/paging.zig +++ b/src/lib/paging.zig @@ -6,7 +6,6 @@ // are 39 bits wide. Sv32 and Sv48 are currently not implemented. const std = @import("std"); - const hwinfo = @import("hwinfo.zig"); const instructions = @import("instructions.zig"); diff --git a/src/lib/plic.zig b/src/lib/plic.zig index 227b8b8..42af334 100644 --- a/src/lib/plic.zig +++ b/src/lib/plic.zig @@ -3,7 +3,6 @@ // SPDX-License-Identifier: AGPL-3.0-or-later const std = @import("std"); - const hwinfo = @import("hwinfo.zig"); pub var default: Plic = undefined; diff --git a/src/lib/process.zig b/src/lib/process.zig index 6893136..8055936 100644 --- a/src/lib/process.zig +++ b/src/lib/process.zig @@ -4,24 +4,21 @@ const builtin = @import("builtin"); const std = @import("std"); - const TrapFrame = @import("TrapFrame.zig"); const instructions = @import("instructions.zig"); const paging = @import("paging.zig"); const rethooks = @import("rethooks.zig"); const time = @import("sbi/time.zig"); - const Allocator = std.mem.Allocator; const elf = std.elf; pub const schedule_interval_millis = 1; pub var list = std.mem.zeroInit(std.DoublyLinkedList(Info), .{}); +var next_pid: u16 = 1; const num_stack_pages = 2; -var next_pid: u16 = 1; - pub const ScheduleError = error{ EmptySchedule, NoInit, diff --git a/src/lib/sbi/debug_console.zig b/src/lib/sbi/debug_console.zig index afd249f..7959083 100644 --- a/src/lib/sbi/debug_console.zig +++ b/src/lib/sbi/debug_console.zig @@ -3,7 +3,6 @@ // SPDX-License-Identifier: AGPL-3.0-or-later const std = @import("std"); - const instructions = @import("../instructions.zig"); const sbi = @import("../sbi.zig"); diff --git a/src/lib/sbi/legacy.zig b/src/lib/sbi/legacy.zig index e544367..4b392cf 100644 --- a/src/lib/sbi/legacy.zig +++ b/src/lib/sbi/legacy.zig @@ -3,7 +3,6 @@ // SPDX-License-Identifier: AGPL-3.0-or-later const std = @import("std"); - const instructions = @import("../instructions.zig"); const sbi = @import("../sbi.zig"); diff --git a/src/lib/sbi/time.zig b/src/lib/sbi/time.zig index 1c54e7d..f799d09 100644 --- a/src/lib/sbi/time.zig +++ b/src/lib/sbi/time.zig @@ -3,7 +3,6 @@ // SPDX-License-Identifier: AGPL-3.0-or-later const std = @import("std"); - const hwinfo = @import("../hwinfo.zig"); const instructions = @import("../instructions.zig"); const sbi = @import("../sbi.zig"); @@ -26,14 +25,11 @@ pub fn setTimer(stime_absolute: u64) !void { } pub fn interruptInMillis(millis: u64) !void { - const stime = asm volatile ( - \\ csrr %[stime], time - : [stime] "=r" (-> u64), - ); + const time = instructions.time.read(); var cpus = try hwinfo.byKind(.cpus); const frequency = try cpus.next() orelse return error.NoCpusHwInfo; const cycles = frequency.value / 1000 * millis; - try setTimer(stime + cycles); + try setTimer(time + cycles); } diff --git a/src/lib/syscall.zig b/src/lib/syscall.zig index 0edd367..57ba258 100644 --- a/src/lib/syscall.zig +++ b/src/lib/syscall.zig @@ -3,7 +3,6 @@ // SPDX-License-Identifier: AGPL-3.0-or-later const std = @import("std"); - const Console = @import("Console.zig"); const TrapFrame = @import("TrapFrame.zig"); const instructions = @import("instructions.zig"); |