Files
Zag/src/root.zig
T
Loïc Grégoire 2d18761822 rtl: add LinkerSet
2026-07-04 22:50:15 -04:00

64 lines
1.5 KiB
Zig

const std = @import("std");
pub const ke = @import("kern/root.zig");
pub const ex = @import("ex/root.zig");
pub const pl = @import("platform/root.zig");
pub const rtl = @import("rtl");
pub const ksyms = @import("ksyms");
pub const arch = @import("arch");
pub const mm = @import("mm/root.zig");
pub const ps = @import("proc/root.zig");
const config = @import("config");
pub const init = ".text.init";
pub const percpu_init_set = rtl.LinkerSet("percpu_init", *const fn () void);
pub const percpu = ".data.percpu";
pub const VAddr = usize;
pub const PAddr = usize;
pub const Nanoseconds = u64;
pub var kernel_heap_base: usize = 0;
pub var kernel_pfndb_base: usize = 0;
/// Return N kibibytes in bytes.
pub fn kib(comptime N: u32) usize {
return N * 1024;
}
/// Return N mebibytes in bytes.
pub fn mib(comptime N: u32) usize {
return kib(N) * 1024;
}
/// Return N gibibytes in bytes.
pub fn gib(comptime N: u32) usize {
return mib(N) * 1024;
}
/// Return N tibibytes in bytes.
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,
};
pub const panic = std.debug.FullPanic(ke.panic);
comptime {
// Ensure the entry point is linked in.
_ = @import("boot/limine/entry.zig");
}