1*41855Sbostic/*- 2*41855Sbostic * Copyright (c) 1990 The Regents of the University of California. 3*41855Sbostic * All rights reserved. 4*41855Sbostic * 5*41855Sbostic * This code is derived from software contributed to Berkeley by 6*41855Sbostic * the Systems Programming Group of the University of Utah Computer 7*41855Sbostic * Science Department. 8*41855Sbostic * 9*41855Sbostic * %sccs.include.redist.c% 10*41855Sbostic */ 11*41855Sbostic 12*41855Sbostic#if defined(LIBC_SCCS) && !defined(lint) 13*41855Sbostic .asciz "@(#)sigprocmask.s 5.1 (Berkeley) 05/12/90" 14*41855Sbostic#endif /* LIBC_SCCS and not lint */ 15*41855Sbostic 16*41855Sbostic#include "SYS.h" 17*41855Sbostic 18*41855Sbosticerr: 19*41855Sbostic jmp cerror 20*41855Sbostic 21*41855SbosticENTRY(sigprocmask) 22*41855Sbostic tstl sp@(8) /* check new sigset pointer */ 23*41855Sbostic jne gotptr /* if not null, indirect */ 24*41855Sbostic/* movl #0,sp@(8) /* null mask pointer: block empty set */ 25*41855Sbostic movl #1,sp@(4) /* SIG_BLOCK */ 26*41855Sbostic jra doit 27*41855Sbosticgotptr: 28*41855Sbostic movl sp@(8),a0 29*41855Sbostic movl a0@,sp@(8) /* indirect to new mask arg */ 30*41855Sbosticdoit: 31*41855Sbostic movl #SYS_sigprocmask,d0 32*41855Sbostic trap #0 33*41855Sbostic jcs err 34*41855Sbostic tstl sp@(12) /* test if old mask requested */ 35*41855Sbostic jeq out 36*41855Sbostic movl sp@(12),a0 37*41855Sbostic movl d0,a0@ /* store old mask */ 38*41855Sbosticout: 39*41855Sbostic clrl d0 40*41855Sbostic rts 41