1/* $NetBSD: compat_sigprocmask13.S,v 1.2 2011/01/15 07:31:13 matt Exp $ */ 2 3#include "SYS.h" 4#include "assym.h" 5 6#if defined(LIBC_SCCS) 7__RCSID("$NetBSD: compat_sigprocmask13.S,v 1.2 2011/01/15 07:31:13 matt Exp $") 8#endif 9 10WARN_REFERENCES(sigprocmask, \ 11 "warning: reference to compatibility sigprocmask(); include <signal.h> for correct reference") 12 13/* 14 * sigprocmask(int how, sigset_t *set, sigset_t *oset) 15 */ 16ENTRY(sigprocmask) 17 or. %r4,%r4,%r4 # set == NULL? 18 li %r6,SIG_BLOCK 19 beq 1f 20 lwz %r4,0(%r4) # if not, replace it in r4 with *set 21 mr %r6,%r3 221: 23 mr %r3,%r6 # ... using sigprocmask(SIG_BLOCK) 24 _DOSYSCALL(compat_13_sigprocmask13) 25 bso 3f 26 or. %r5,%r5,%r5 # check to see of oset requested 27 beq 2f # if oset != NULL, 28 stw %r3,0(%r5) # *oset = oldmask 292: 30 li %r3,0 31 blr # in any case, return 0 323: 33 b _C_LABEL(__cerror) 34END(sigprocmask) 35