Merge pull request #286 from ZystemOS/feature/zig-update
Update to zig master
This commit is contained in:
commit
c414e9c170
5 changed files with 13 additions and 14 deletions
|
@ -44,7 +44,7 @@ export var KERNEL_PHYSADDR_END: u32 = if (builtin.is_test) 0x14E000 else undefin
|
||||||
// Just call the panic function, as this need to be in the root source file
|
// Just call the panic function, as this need to be in the root source file
|
||||||
pub fn panic(msg: []const u8, error_return_trace: ?*builtin.StackTrace) noreturn {
|
pub fn panic(msg: []const u8, error_return_trace: ?*builtin.StackTrace) noreturn {
|
||||||
@setCold(true);
|
@setCold(true);
|
||||||
panic_root.panic(error_return_trace, "{}", .{msg});
|
panic_root.panic(error_return_trace, "{s}", .{msg});
|
||||||
}
|
}
|
||||||
|
|
||||||
pub const log_level: std.log.Level = .debug;
|
pub const log_level: std.log.Level = .debug;
|
||||||
|
@ -173,7 +173,7 @@ fn initStage2() noreturn {
|
||||||
\\ | | | |____ | |__| | | | | |__| |
|
\\ | | | |____ | |__| | | | | |__| |
|
||||||
\\ |_| |______| \____/ |_| \____/
|
\\ |_| |______| \____/ |_| \____/
|
||||||
;
|
;
|
||||||
tty.print("{}\n\n", .{logo});
|
tty.print("{s}\n\n", .{logo});
|
||||||
|
|
||||||
tty.print("Hello Pluto from kernel :)\n", .{});
|
tty.print("Hello Pluto from kernel :)\n", .{});
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,8 @@ const scheduler = @import("scheduler.zig");
|
||||||
/// The errors that can occur when logging
|
/// The errors that can occur when logging
|
||||||
const LoggingError = error{};
|
const LoggingError = error{};
|
||||||
|
|
||||||
/// The OutStream for the format function
|
/// The Writer for the format function
|
||||||
const OutStream = std.io.OutStream(void, LoggingError, logCallback);
|
const Writer = std.io.Writer(void, LoggingError, logCallback);
|
||||||
|
|
||||||
/// The serial object where the logs will be written to. This will be a COM serial port.
|
/// The serial object where the logs will be written to. This will be a COM serial port.
|
||||||
var serial: Serial = undefined;
|
var serial: Serial = undefined;
|
||||||
|
@ -44,7 +44,7 @@ fn logCallback(context: void, str: []const u8) LoggingError!usize {
|
||||||
///
|
///
|
||||||
pub fn log(comptime level: std.log.Level, comptime format: []const u8, args: anytype) void {
|
pub fn log(comptime level: std.log.Level, comptime format: []const u8, args: anytype) void {
|
||||||
scheduler.taskSwitching(false);
|
scheduler.taskSwitching(false);
|
||||||
fmt.format(OutStream{ .context = {} }, "[" ++ @tagName(level) ++ "] " ++ format, args) catch unreachable;
|
fmt.format(Writer{ .context = {} }, "[" ++ @tagName(level) ++ "] " ++ format, args) catch unreachable;
|
||||||
scheduler.taskSwitching(true);
|
scheduler.taskSwitching(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,6 +70,6 @@ fn runtimeTests() void {
|
||||||
inline for (@typeInfo(std.log.Level).Enum.fields) |field| {
|
inline for (@typeInfo(std.log.Level).Enum.fields) |field| {
|
||||||
const level = @field(std.log.Level, field.name);
|
const level = @field(std.log.Level, field.name);
|
||||||
log(level, "Test " ++ field.name ++ " level\n", .{});
|
log(level, "Test " ++ field.name ++ " level\n", .{});
|
||||||
log(level, "Test " ++ field.name ++ " level with args {}, {}\n", .{ "a", @as(u32, 1) });
|
log(level, "Test " ++ field.name ++ " level with args {s}, {}\n", .{ "a", @as(u32, 1) });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const builtin = @import("builtin");
|
const builtin = @import("builtin");
|
||||||
const tty = @import("tty.zig");
|
|
||||||
const arch = @import("arch.zig").internals;
|
const arch = @import("arch.zig").internals;
|
||||||
const multiboot = @import("multiboot.zig");
|
const multiboot = @import("multiboot.zig");
|
||||||
const mem = @import("mem.zig");
|
const mem = @import("mem.zig");
|
||||||
|
@ -112,7 +111,7 @@ var symbol_map: ?SymbolMap = null;
|
||||||
///
|
///
|
||||||
fn logTraceAddress(addr: usize) void {
|
fn logTraceAddress(addr: usize) void {
|
||||||
const str = if (symbol_map) |syms| syms.search(addr) orelse "?????" else "(no symbols available)";
|
const str = if (symbol_map) |syms| syms.search(addr) orelse "?????" else "(no symbols available)";
|
||||||
log.emerg("{x}: {}\n", .{ addr, str });
|
log.emerg("{x}: {s}\n", .{ addr, str });
|
||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
|
|
|
@ -7,7 +7,7 @@ const arch = @import("arch.zig").internals;
|
||||||
const panic = @import("panic.zig").panic;
|
const panic = @import("panic.zig").panic;
|
||||||
|
|
||||||
/// The OutStream for the format function
|
/// The OutStream for the format function
|
||||||
const OutStream = std.io.OutStream(void, anyerror, printCallback);
|
const Writer = std.io.Writer(void, anyerror, printCallback);
|
||||||
|
|
||||||
pub const TTY = struct {
|
pub const TTY = struct {
|
||||||
/// Print a already-formatted string
|
/// Print a already-formatted string
|
||||||
|
@ -51,7 +51,7 @@ fn printCallback(ctx: void, str: []const u8) !usize {
|
||||||
///
|
///
|
||||||
pub fn print(comptime format: []const u8, args: anytype) void {
|
pub fn print(comptime format: []const u8, args: anytype) void {
|
||||||
// Printing can't error because of the scrolling, if it does, we have a big problem
|
// Printing can't error because of the scrolling, if it does, we have a big problem
|
||||||
fmt.format(OutStream{ .context = {} }, format, args) catch |e| {
|
fmt.format(Writer{ .context = {} }, format, args) catch |e| {
|
||||||
log.emerg("Error printing. Error: {}\n", .{e});
|
log.emerg("Error printing. Error: {}\n", .{e});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,7 +99,7 @@ pub const RuntimeStep = struct {
|
||||||
while (true) {
|
while (true) {
|
||||||
const msg = self.get_msg() catch return true;
|
const msg = self.get_msg() catch return true;
|
||||||
defer self.builder.allocator.free(msg);
|
defer self.builder.allocator.free(msg);
|
||||||
std.debug.warn("{}\n", .{msg});
|
std.debug.warn("{s}\n", .{msg});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ pub const RuntimeStep = struct {
|
||||||
const msg = self.get_msg() catch return false;
|
const msg = self.get_msg() catch return false;
|
||||||
defer self.builder.allocator.free(msg);
|
defer self.builder.allocator.free(msg);
|
||||||
// Print the line to see what is going on
|
// Print the line to see what is going on
|
||||||
std.debug.warn("{}\n", .{msg});
|
std.debug.warn("{s}\n", .{msg});
|
||||||
if (std.mem.indexOf(u8, msg, "FAILURE")) |_| {
|
if (std.mem.indexOf(u8, msg, "FAILURE")) |_| {
|
||||||
return false;
|
return false;
|
||||||
} else if (std.mem.indexOf(u8, msg, "Kernel panic")) |_| {
|
} else if (std.mem.indexOf(u8, msg, "Kernel panic")) |_| {
|
||||||
|
@ -142,7 +142,7 @@ pub const RuntimeStep = struct {
|
||||||
const msg = self.get_msg() catch return false;
|
const msg = self.get_msg() catch return false;
|
||||||
defer self.builder.allocator.free(msg);
|
defer self.builder.allocator.free(msg);
|
||||||
// Print the line to see what is going on
|
// Print the line to see what is going on
|
||||||
std.debug.warn("{}\n", .{msg});
|
std.debug.warn("{s}\n", .{msg});
|
||||||
if (std.mem.eql(u8, msg, "[emerg] (panic): Kernel panic: integer overflow")) {
|
if (std.mem.eql(u8, msg, "[emerg] (panic): Kernel panic: integer overflow")) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -164,7 +164,7 @@ pub const RuntimeStep = struct {
|
||||||
const msg = self.get_msg() catch return false;
|
const msg = self.get_msg() catch return false;
|
||||||
defer self.builder.allocator.free(msg);
|
defer self.builder.allocator.free(msg);
|
||||||
|
|
||||||
std.debug.warn("{}\n", .{msg});
|
std.debug.warn("{s}\n", .{msg});
|
||||||
|
|
||||||
// Make sure `[INFO] Switched` then `[INFO] SUCCESS: Scheduler variables preserved` are logged in this order
|
// Make sure `[INFO] Switched` then `[INFO] SUCCESS: Scheduler variables preserved` are logged in this order
|
||||||
if (std.mem.eql(u8, msg, "[info] (scheduler): Switched") and state == 0) {
|
if (std.mem.eql(u8, msg, "[info] (scheduler): Switched") and state == 0) {
|
||||||
|
|
Loading…
Reference in a new issue