all: type-safe time units

This commit is contained in:
Loïc Grégoire
2026-08-02 00:02:44 -04:00
parent 24372a2b4e
commit e36416304b
23 changed files with 137 additions and 61 deletions
+12 -9
View File
@@ -21,13 +21,24 @@ pub const percpu = ".data.percpu";
pub const VAddr = usize;
pub const PAddr = usize;
pub const Nanoseconds = u64;
pub const Nanoseconds = rtl.units.Nanoseconds;
pub const Microseconds = rtl.units.Microseconds;
pub const Milliseconds = rtl.units.Milliseconds;
pub const Seconds = rtl.units.Seconds;
pub var kernel_heap_base: usize = 0;
pub var kernel_pfndb_base: usize = 0;
pub var boot_info: *BootInfo = undefined;
pub inline fn mmio_read(comptime T: type, addr: usize) T {
return @as(*volatile T, @ptrFromInt(addr)).*;
}
pub inline fn mmio_write(comptime T: type, addr: usize, value: T) void {
@as(*volatile T, @ptrFromInt(addr)).* = value;
}
/// Return N kibibytes in bytes.
pub fn kib(comptime N: u32) usize {
return N * 1024;
@@ -48,14 +59,6 @@ pub fn tib(comptime N: u32) usize {
return gib(N) * 1024;
}
pub inline fn mmio_read(comptime T: type, addr: usize) T {
return @as(*volatile T, @ptrFromInt(addr)).*;
}
pub inline fn mmio_write(comptime T: type, addr: usize, value: T) void {
@as(*volatile T, @ptrFromInt(addr)).* = value;
}
pub const std_options = std.Options{
.logFn = ke.log.log,
};