| # xstormy16 system calls for the simulator |
| |
| #include <syscall.h> |
| |
| .text |
| |
| define(`syscall',`.globl _`'$1 |
| _`'$1`': |
| mov r1,#SYS_$1 |
| .hword 0x0001 |
| bnz r1,#0,syscall_error |
| ret |
| 0: .size $1,0b-_$1 |
| ')dnl |
| syscall(exit) |
| syscall(open) |
| syscall(close) |
| syscall(read) |
| syscall(write) |
| syscall(lseek) |
| syscall(unlink) |
| syscall(getpid) |
| syscall(kill) |
| syscall(fstat) |
| syscall(chdir) |
| syscall(stat) |
| syscall(chmod) |
| syscall(utime) |
| syscall(time) |
| syscall(gettimeofday) |
| syscall(times) |
| syscall(link) |
| dnl |
| syscall_error: |
| push r0 |
| callf __errno |
| pop r0 |
| mov.w (r2),r0 |
| ret |
| 0: .size syscall_error,0b-syscall_error |