summaryrefslogtreecommitdiff
path: root/devel/mit-pthreads/patches/patch-bn
blob: 40854f5fa631d5d2d2aee57601b93b8a1b25a90f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
$NetBSD: patch-bn,v 1.3 1999/09/10 20:38:23 bad Exp $

--- /dev/null	Fri Sep 10 15:38:20 1999
+++ machdep/syscall-m68000-netbsd.S	Fri Sep 10 20:57:21 1999
@@ -0,0 +1,83 @@
+
+#ifndef lint
+    .text
+    .asciz "$Id: patch-bn,v 1.3 1999/09/10 20:38:23 bad Exp $";
+#endif
+
+#include <machine/asm.h>
+#include <sys/syscall.h>
+
+#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
+
+/* ==========================================================================
+ * machdep_sys_pipe
+ */
+	.even
+ENTRY(machdep_sys_pipe);
+	movl #SYS_pipe,d0
+	trap #0
+	jcs 	err
+	movl	sp@(4),a0
+	movl	d0,a0@+
+	movl	d1,a0@
+	clrl	d0
+	rts
+
+#ifndef SYS___sigsuspend14
+	.even
+ENTRY(machdep_sys_sigsuspend)
+	movl	sp@(4),a0
+	movl	a0@,sp@(4)
+	movl	#SYS_sigsuspend,d0
+	trap	#0
+	jcs	err
+	clrl	d0
+	rts
+#endif
+
+#ifndef SYS___sigprocmask14
+	.even
+ENTRY(machdep_sys_sigprocmask)
+	tstl	sp@(8)
+	jne	gotptr
+/*	movl	#0,sp@(8)	/* null mask pointer; block empty set */
+	movl	#1,sp@(4)	
+	jra	doit
+gotptr:
+	movl	sp@(8),a0
+	movl	a0@,sp@(8)
+doit:
+	movl	#SYS_sigprocmask,d0
+	trap	#0
+	jcs	err
+	tstl	sp@(12)
+	jeq	out
+	movl	sp@(12),a0
+	movl	d0,a0@
+out:
+	clrl	d0
+	rts
+#endif