Microkernel thing OS experiment (Zig ⚡)
1const std = @import("std");
2
3pub const Architecture = enum {
4 const Self = @This();
5 aarch64,
6 riscv64,
7 amd64,
8
9 pub fn get(self: *const Self) std.Target.Cpu.Arch {
10 return switch (self.*) {
11 .aarch64 => .aarch64,
12 .riscv64 => .riscv64,
13 .amd64 => .x86_64,
14 };
15 }
16
17 pub fn kernelExeName(self: *const Self) []const u8 {
18 return switch (self.*) {
19 .aarch64 => "kernel-aarch64.elf",
20 .riscv64 => "kernel-riscv64.elf",
21 .amd64 => "kernel-amd64.elf",
22 };
23 }
24
25 pub fn rootTaskName(self: *const Self) []const u8 {
26 return switch (self.*) {
27 .aarch64 => "init-aarch64.elf",
28 .riscv64 => "init-riscv64.elf",
29 .amd64 => "init-amd64.elf",
30 };
31 }
32};