| 43 | } |
| 44 | |
| 45 | __attribute__((unused)) |
| 46 | static ssize_t sys_write(int fd, const char *buf, size_t count) |
| 47 | { |
| 48 | register int a0 __asm__ ("a0") = fd; |
| 49 | register const char * a1 __asm__ ("a1") = buf; |
| 50 | register size_t a2 __asm__ ("a2") = count; |
| 51 | register ssize_t ret __asm__ ("a0"); |
| 52 | __asm__ volatile( |
| 53 | "li a7, 64\n" |
| 54 | "ecall\n" |
| 55 | : "=r" (ret) |
| 56 | : "r" (a0), "r" (a1), "r" (a2) |
| 57 | : "a7" |
| 58 | ); |
| 59 | |
| 60 | return ret; |
| 61 | } |
| 62 | |
| 63 | __attribute__((unused)) |
| 64 | static int sys_execve(const char *filename, char *const argv[], char *const envp[]) |