1/* $NetBSD: compat_sigprocmask13.S,v 1.1 2006/02/18 00:21:28 matt Exp $ */ 2 3#include "SYS.h" 4 5WARN_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 */ 11ENTRY(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 171: 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 252: 26 li %r3,0 27 blr # in any case, return 0 283: 29 b PIC_PLT(_C_LABEL(__cerror)) 30