summaryrefslogtreecommitdiffstats
path: root/libgloss/m68k/simulator.S
diff options
context:
space:
mode:
Diffstat (limited to 'libgloss/m68k/simulator.S')
-rw-r--r--libgloss/m68k/simulator.S84
1 files changed, 84 insertions, 0 deletions
diff --git a/libgloss/m68k/simulator.S b/libgloss/m68k/simulator.S
new file mode 100644
index 000000000..2161421e9
--- /dev/null
+++ b/libgloss/m68k/simulator.S
@@ -0,0 +1,84 @@
+/*
+ * 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)