23 #include "sbi/sbi_ecall_interface.h"
32 sbiret_t ecall(
unsigned long _arg0,
unsigned long _arg1,
unsigned long _arg2,
33 unsigned long _arg3,
unsigned long _arg4,
unsigned long _arg5,
36 register uintptr_t a0
asm(
"a0") = (uintptr_t)(_arg0);
37 register uintptr_t a1
asm(
"a1") = (uintptr_t)(_arg1);
38 register uintptr_t a2
asm(
"a2") = (uintptr_t)(_arg2);
39 register uintptr_t a3
asm(
"a3") = (uintptr_t)(_arg3);
40 register uintptr_t a4
asm(
"a4") = (uintptr_t)(_arg4);
41 register uintptr_t a5
asm(
"a5") = (uintptr_t)(_arg5);
42 register uintptr_t a6
asm(
"a6") = (uintptr_t)(_fid);
43 register uintptr_t a7
asm(
"a7") = (uintptr_t)(_eid);
46 :
"r"(a2),
"r"(a3),
"r"(a4),
"r"(a5),
"r"(a6),
"r"(a7)
54 ecall(_c, 0, 0, 0, 0, 0, 0, SBI_EXT_0_1_CONSOLE_PUTCHAR);
int32_t arch(uint32_t _argc, uint8_t **_argv)
void put_char(const char _c)
sbiret_t ecall(unsigned long _arg0, unsigned long _arg1, unsigned long _arg2, unsigned long _arg3, unsigned long _arg4, unsigned long _arg5, int _fid, int _eid)