mirror of
https://github.com/ringtailsoftware/uvm32.git
synced 2026-06-05 22:43:39 +00:00
28 lines
630 B
Zig
28 lines
630 B
Zig
const uvm32 = @cImport({
|
|
@cDefine("USE_MAIN", "1");
|
|
@cInclude("uvm32_target.h");
|
|
});
|
|
const std = @import("std");
|
|
|
|
pub inline fn syscall(id: u32, param: u32) u32 {
|
|
var val: u32 = undefined;
|
|
asm volatile ("ecall"
|
|
: [val] "={a1}" (val),
|
|
: [param] "{a0}" (param),
|
|
[id] "{a7}" (id),
|
|
: .{ .memory = true });
|
|
return val;
|
|
}
|
|
|
|
pub inline fn println(val: [:0]const u8) void {
|
|
_ = syscall(uvm32.IOREQ_PRINTLN, @intFromPtr(val.ptr));
|
|
}
|
|
|
|
pub inline fn yield() void {
|
|
_ = syscall(uvm32.IOREQ_YIELD, 0);
|
|
}
|
|
|
|
pub inline fn printc(c:u8) void {
|
|
_ = syscall(uvm32.IOREQ_PRINTC, c);
|
|
}
|
|
|