compat_sigprocmask13.S revision 1.1 1 /* $NetBSD: compat_sigprocmask13.S,v 1.1 2006/02/18 00:21:28 matt Exp $ */
2
3 #include "SYS.h"
4
5 WARN_REFERENCES(sigprocmask, \
6 "warning: reference to compatibility sigprocmask(); include <signal.h> for correct reference")
7
8 /*
9 * sigprocmask(int how, sigset_t *set, sigset_t *oset)
10 */
11 ENTRY(sigprocmask)
12 or. %r4,%r4,%r4 # set == NULL?
13 li %r6,1 # how = SIG_BLOCK
14 beq 1f
15 lwz %r4,0(%r4) # if not, replace it in r4 with *set
16 mr %r6,%r3
17 1:
18 mr %r3,%r6 # ... using sigprocmask(SIG_BLOCK)
19 li %r0,SYS_compat_13_sigprocmask13
20 sc
21 bso 3f
22 or. %r5,%r5,%r5 # check to see of oset requested
23 beq 2f # if oset != NULL,
24 stw %r3,0(%r5) # *oset = oldmask
25 2:
26 li %r3,0
27 blr # in any case, return 0
28 3:
29 b PIC_PLT(_C_LABEL(__cerror))
30