pluto/src/kernel/log.zig
ED d5d4082a66 Fixed tesing
Add mocking of functions


Added new function type


Fixed up the mock testing


Working mock_framework :), fixed up all tests for VGA and TTY


Adding tests


VGA testing done


Fin vga and tty mock testing


Fixed build


Removed white spaces


WIP


Added tests for all build modes + reduced import string length for testing


Added comments refactoring


Re-added constants


Added some comments


Updated to master of zig


Added unit tests to pipeline


PR comments


Fixed typos
2019-09-08 20:48:23 +01:00

33 lines
860 B
Zig

const serial = @import("serial.zig");
const fmt = @import("std").fmt;
pub const Level = enum {
INFO,
DEBUG,
WARNING,
ERROR,
};
fn logCallback(context: void, str: []const u8) anyerror!void {
serial.writeString(str, serial.Port.COM1);
}
pub fn log(comptime level: Level, comptime format: []const u8, args: ...) void {
fmt.format({}, anyerror, logCallback, "[" ++ @tagName(level) ++ "] " ++ format, args) catch unreachable;
}
pub fn logInfo(comptime format: []const u8, args: ...) void {
log(Level.INFO, format, args);
}
pub fn logDebug(comptime format: []const u8, args: ...) void {
log(Level.DEBUG, format, args);
}
pub fn logWarning(comptime format: []const u8, args: ...) void {
log(Level.WARNING, format, args);
}
pub fn logError(comptime format: []const u8, args: ...) void {
log(Level.ERROR, format, args);
}