summaryrefslogtreecommitdiff
path: root/mit-pthreads/machdep/syscall-template-m68000-netbsd.S
diff options
context:
space:
mode:
Diffstat (limited to 'mit-pthreads/machdep/syscall-template-m68000-netbsd.S')
-rw-r--r--mit-pthreads/machdep/syscall-template-m68000-netbsd.S43
1 files changed, 43 insertions, 0 deletions
diff --git a/mit-pthreads/machdep/syscall-template-m68000-netbsd.S b/mit-pthreads/machdep/syscall-template-m68000-netbsd.S
new file mode 100644
index 00000000000..ce16bb5523c
--- /dev/null
+++ b/mit-pthreads/machdep/syscall-template-m68000-netbsd.S
@@ -0,0 +1,43 @@
+#include <machine/asm.h>
+#include <sys/syscall.h>
+
+#ifdef SYS___sigsuspend14
+#define SYS_sigsuspend SYS___sigsuspend14
+#endif
+#ifdef SYS___sigprocmask14
+#define SYS_sigprocmask SYS___sigprocmask14
+#endif
+
+
+#ifdef __STDC__
+#define IMM #
+#define SYSCALL(x) .even; \
+ ENTRY(machdep_sys_ ## x); \
+ movl IMM SYS_ ## x,d0; \
+ trap IMM 0; \
+ jcs err; \
+ rts
+#else /* !__STDC__ */
+#define SYSCALL(x) .even; ENTRY(machdep_sys_/**/x); \
+ movl #SYS_/**/x,d0; trap #0; jcs err; rts
+#endif /* !__STDC__ */
+
+/*
+ * Initial asm stuff for all functions.
+ */
+ .text
+ .even
+
+
+/* ==========================================================================
+ * error code for all syscalls. The error value is returned as the negative
+ * of the errno value.
+ */
+
+err:
+ negl d0
+ rts
+
+#define XSYSCALL(NAME) SYSCALL(NAME)
+
+XSYSCALL(SYSCALL_NAME)