xref: /csrg-svn/lib/libc/hp300/sys/sigprocmask.s (revision 41855)
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