kernel/src/arch/x86_64/debug.zig
2025-05-09 23:16:25 +08:00

28 lines
611 B
Zig

const std = @import("std");
const root = @import("root");
const libk = @import("libk");
pub const QemuExitCode = enum(u16) {
success = 0x10,
failed = 0x11,
};
pub fn exit(code: QemuExitCode) noreturn {
root.arch.out(0x16, @intFromEnum(code));
while (true) root.arch.halt();
}
pub const Error = error{};
pub const Writer = std.io.GenericWriter(void, Error, write);
pub fn writer() Writer {
return .{ .context = {} };
}
fn write(_: void, data: []const u8) Error!usize {
root.arch.machine.serial.COM1.write(data);
root.machine.Console.Instance.write(data);
return data.len;
}