summaryrefslogtreecommitdiff
path: root/mit-pthreads/machdep/syscall-template-i386-netbsd-1.1.S
diff options
context:
space:
mode:
Diffstat (limited to 'mit-pthreads/machdep/syscall-template-i386-netbsd-1.1.S')
-rw-r--r--mit-pthreads/machdep/syscall-template-i386-netbsd-1.1.S49
1 files changed, 49 insertions, 0 deletions
diff --git a/mit-pthreads/machdep/syscall-template-i386-netbsd-1.1.S b/mit-pthreads/machdep/syscall-template-i386-netbsd-1.1.S
new file mode 100644
index 00000000000..c5e76bb4538
--- /dev/null
+++ b/mit-pthreads/machdep/syscall-template-i386-netbsd-1.1.S
@@ -0,0 +1,49 @@
+#include <machine/asm.h>
+#include <sys/syscall.h>
+
+#ifdef __STDC__
+
+#define SYSCALL(x) \
+ .globl _machdep_sys_##x; \
+ \
+_machdep_sys_##x:; \
+ \
+ movl $(SYS_##x), %eax; \
+ int $0x80; \
+ jb 1b; \
+ ret;
+
+#else
+
+#define SYSCALL(x) \
+ .globl _machdep_sys_/**/x; \
+ \
+_machdep_sys_/**/x:; \
+ \
+ movl $(SYS_/**/x), %eax; \
+ int $0x80; \
+ jb 1b; \
+ ret;
+
+#endif
+
+
+/*
+ * Initial asm stuff for all functions.
+ */
+ .text
+ .align 2
+
+
+/* ==========================================================================
+ * error code for all syscalls. The error value is returned as the negative
+ * of the errno value.
+ */
+
+1:
+ neg %eax
+ ret
+
+#define XSYSCALL(NAME) SYSCALL(NAME)
+
+XSYSCALL(SYSCALL_NAME)