| /* |
| * simulator.S -- m68k simulator system calls. |
| * |
| * Copyright (c) 1995, 2001 Cygnus Support |
| * |
| * The authors hereby grant permission to use, copy, modify, distribute, |
| * and license this software and its documentation for any purpose, provided |
| * that existing copyright notices are retained in all copies and that this |
| * notice is included verbatim in any distributions. No written agreement, |
| * license, or royalty fee is required for any of the authorized uses. |
| * Modifications to this software may be copyrighted by their authors |
| * and need not follow the licensing terms described here, provided that |
| * the new terms are clearly indicated on the first page of each file where |
| * they apply. |
| */ |
| |
| #include "asm.h" |
| |
| #define SYSCALL(x) .word 0x4afc, x |
| |
| #define FUNC_START(x) .globl x; x: |
| #define FUNC_END(x) |
| #define FUNC_NAME(x) SYM(x) |
| |
| FUNC_START(_exit) |
| SYSCALL(1) |
| |
| /* |
| * Insure that the debugger tells the client that the PC is in _exit, |
| * not whatever function happens to follow this function. |
| */ |
| |
| 0: nop |
| jmp 0b /* we never should return, but... */ |
| |
| FUNC_END(_exit) |
| |
| FUNC_START(read) |
| SYSCALL(3) |
| bcs FUNC_NAME(_cerror) |
| rts |
| FUNC_END(read) |
| |
| FUNC_START(write) |
| SYSCALL(4) |
| bcs FUNC_NAME(_cerror) |
| rts |
| FUNC_END(write) |
| |
| FUNC_START(open) |
| SYSCALL(5) |
| bcs FUNC_NAME(_cerror) |
| rts |
| FUNC_END(open) |
| |
| FUNC_START(close) |
| SYSCALL(6) |
| bcs FUNC_NAME(_cerror) |
| rts |
| FUNC_END(close) |
| |
| FUNC_START(brk) |
| SYSCALL(17) |
| bcs FUNC_NAME(_cerror) |
| rts |
| FUNC_END(brk) |
| |
| FUNC_START(lseek) |
| SYSCALL(199) |
| bcs FUNC_NAME(_cerror) |
| rts |
| FUNC_END(lseek) |
| |
| FUNC_START(fstat) |
| SYSCALL(28) |
| bcs FUNC_NAME(_cerror) |
| rts |
| FUNC_END(lseek) |
| |
| FUNC_START(isatty) |
| SYSCALL(29) |
| bcs FUNC_NAME(_cerror) |
| rts |
| FUNC_END(isatty) |