23 lines
655 B
Zig
23 lines
655 B
Zig
const abi = @import("abi");
|
|
|
|
pub const syscall = struct {
|
|
pub fn syscall1(func: abi.SyscallNumber, arg0: usize) usize {
|
|
return asm volatile ("ecall"
|
|
: [result] "={a0}" (-> usize),
|
|
: [func] "{a0}" (@intFromEnum(func)),
|
|
[arg0] "{a1}" (arg0),
|
|
: "memory"
|
|
);
|
|
}
|
|
|
|
pub fn syscall2(func: abi.SyscallNumber, arg0: usize, arg1: usize) usize {
|
|
return asm volatile ("ecall"
|
|
: [result] "={a0}" (-> usize),
|
|
: [func] "{a0}" (@intFromEnum(func)),
|
|
[arg0] "{a1}" (arg0),
|
|
[arg1] "{a2}" (arg1),
|
|
: "memory"
|
|
);
|
|
}
|
|
};
|