28 lines
611 B
Zig
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;
|
|
}
|