date and time created 92/06/25 06:38:00 by torek
authorChris Torek <torek@ucbvax.Berkeley.EDU>
Thu, 25 Jun 1992 21:38:00 +0000 (13:38 -0800)
committerChris Torek <torek@ucbvax.Berkeley.EDU>
Thu, 25 Jun 1992 21:38:00 +0000 (13:38 -0800)
SCCS-vsn: lib/libc/sparc/sys/sigpending.s 5.1
SCCS-vsn: lib/libc/sparc/sys/sigprocmask.s 5.1

usr/src/lib/libc/sparc/sys/sigpending.s [new file with mode: 0644]
usr/src/lib/libc/sparc/sys/sigprocmask.s [new file with mode: 0644]

diff --git a/usr/src/lib/libc/sparc/sys/sigpending.s b/usr/src/lib/libc/sparc/sys/sigpending.s
new file mode 100644 (file)
index 0000000..e5d4151
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 1992 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * This software was developed by the Computer Systems Engineering group
+ * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
+ * contributed to Berkeley.
+ *
+ * %sccs.include.redist.c%
+ *
+ * from: $Header: sigpending.s,v 1.1 91/07/06 13:06:00 torek Exp $
+ */
+
+#if defined(LIBC_SCCS) && !defined(lint)
+       .asciz "@(#)sigpending.s        5.1 (Berkeley) %G%"
+#endif /* LIBC_SCCS and not lint */
+
+#include "SYS.h"
+
+ENTRY(sigpending)
+       mov     %o0, %o2                ! save pointer
+       mov     SYS_sigpending, %g1
+       t       ST_SYSCALL              ! sigpending()
+       bcc,a   1f                      ! if success,
+        st     %o0, [%o2]              !    store return value
+       ERROR()
+1:
+       retl                            ! and return 0
+        clr    %o0
diff --git a/usr/src/lib/libc/sparc/sys/sigprocmask.s b/usr/src/lib/libc/sparc/sys/sigprocmask.s
new file mode 100644 (file)
index 0000000..4c91909
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 1992 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * This software was developed by the Computer Systems Engineering group
+ * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
+ * contributed to Berkeley.
+ *
+ * %sccs.include.redist.c%
+ *
+ * from: $Header: sigprocmask.s,v 1.1 91/07/06 13:06:01 torek Exp $
+ */
+
+#if defined(LIBC_SCCS) && !defined(lint)
+       .asciz "@(#)sigprocmask.s       5.1 (Berkeley) %G%"
+#endif /* LIBC_SCCS and not lint */
+
+#include "SYS.h"
+
+/*
+ * sigprocmask(int how, sigset_t *set, sigset_t *oset)
+ */
+ENTRY(sigprocmask)
+       tst     %o1             ! set == NULL?
+       bne,a   1f              ! if not,
+        ld     [%o1], %o1      !    replace it in %o1 with *set
+!      clr     %o1             ! else block no signals ...
+       mov     1, %o0          ! ... using sigprocmask(SIG_BLOCK)
+1:
+       mov     SYS_sigprocmask, %g1
+       t       ST_SYSCALL
+       bcc     2f              ! if success,
+        tst    %o2             !    check to see if oset requested
+       ERROR()
+2:
+       bne,a   3f              ! if oset != NULL,
+        st     %o0, [%o2]      !    *oset = oldmask
+3:
+       retl                    ! in any case, return 0
+        clr    %o0