Microkernel thing OS experiment (Zig ⚡)
at dev 810 B view raw
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};