feat(loader, kernel): impl part of loader and initialize kernel structure
This commit is contained in:
@@ -1,32 +0,0 @@
|
||||
const std = @import("std");
|
||||
|
||||
pub fn buildKernelBin(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode) *std.Build.Step.Compile {
|
||||
const kernel = b.addExecutable(.{
|
||||
.name = "kernel.bin",
|
||||
.use_llvm = true,
|
||||
.use_lld = true,
|
||||
.root_module = b.createModule(.{
|
||||
.root_source_file = b.path("init/main.zig"),
|
||||
.target = target,
|
||||
.optimize = optimize,
|
||||
.code_model = .kernel,
|
||||
}),
|
||||
});
|
||||
switch (target.result.cpu.arch) {
|
||||
.x86_64 => {
|
||||
kernel.setLinkerScript(b.path("arch/x86/kernel_bin.ld"));
|
||||
},
|
||||
else => {
|
||||
@panic("target architecture unsupported");
|
||||
}
|
||||
}
|
||||
kernel.entry = .{
|
||||
.symbol_name = "kernel_start",
|
||||
};
|
||||
kernel.link_gc_sections = false;
|
||||
return kernel;
|
||||
}
|
||||
|
||||
pub fn buildKernelBinInstall(b: *std.Build, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode) *std.Build.Step.InstallArtifact {
|
||||
return b.addInstallArtifact(buildKernelBin(b, target, optimize), .{});
|
||||
}
|
||||
4
kernel/main.zig
Normal file
4
kernel/main.zig
Normal file
@@ -0,0 +1,4 @@
|
||||
export fn start_kernel() callconv(.c) noreturn {
|
||||
// Placeholder for kernel start function
|
||||
while (true) {}
|
||||
}
|
||||
Reference in New Issue
Block a user