riscv-os/include/sbi.h
2025-04-26 22:43:28 +12:00

31 lines
923 B
C

#ifndef SBI_H
#define SBI_H
#include <stddef.h>
#include <stdint.h>
#define EID_DEBUG_CONSOLE 0x4442434E
#define EID_TIMER 0x54494D45
#define FID_CONSOLE_WRITE 0
#define FID_SET_TIMER 0
typedef struct {
long error;
long value;
} sbiret;
sbiret sbi_ecall6(
int fid, int eid, size_t arg0, size_t arg1, size_t arg2, size_t arg3, size_t arg4, size_t arg5);
#define sbi_ecall5(fid, eid, a0, a1, a2, a3, a4) sbi_ecall6(fid, eid, a0, a1, a2, a3, a4, 0)
#define sbi_ecall4(fid, eid, a0, a1, a2, a3) sbi_ecall5(fid, eid, a0, a1, a2, a3, 0)
#define sbi_ecall3(fid, eid, a0, a1, a2) sbi_ecall4(fid, eid, a0, a1, a2, 0)
#define sbi_ecall2(fid, eid, a0, a1) sbi_ecall3(fid, eid, a0, a1, 0)
#define sbi_ecall1(fid, eid, a0) sbi_ecall2(fid, eid, a0, 0)
#define sbi_ecall0(fid, eid) sbi_ecall1(fid, eid, 0)
sbiret sbi_debug_console_write(const char* str, size_t len);
sbiret sbi_set_timer(uint64_t stime_value);
#endif