xref: /csrg-svn/lib/libc/vax/sys/sigprocmask.s (revision 39265)
138802Skarels/*
238802Skarels * Copyright (c) 1989 Regents of the University of California.
338802Skarels * All rights reserved.
438802Skarels *
538802Skarels * Redistribution and use in source and binary forms are permitted
638802Skarels * provided that the above copyright notice and this paragraph are
738802Skarels * duplicated in all such forms and that any documentation,
838802Skarels * advertising materials, and other materials related to such
938802Skarels * distribution and use acknowledge that the software was developed
1038802Skarels * by the University of California, Berkeley.  The name of the
1138802Skarels * University may not be used to endorse or promote products derived
1238802Skarels * from this software without specific prior written permission.
1338802Skarels * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
1438802Skarels * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
1538802Skarels * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
1638802Skarels */
1738802Skarels
1838802Skarels#if defined(SYSLIBC_SCCS) && !defined(lint)
19*39265Storek	.asciz "@(#)sigprocmask.s	5.2 (Berkeley) 10/10/89"
2038802Skarels#endif /* SYSLIBC_SCCS and not lint */
2138802Skarels
2238802Skarels#include "SYS.h"
2338802Skarels
2438802Skarelserr:
2538802Skarels	jmp	cerror
2638802Skarels
2738802SkarelsENTRY(sigprocmask)
28*39265Storek	tstl	8(ap)			# check new sigset pointer
2938802Skarels	bneq	1f			# if not null, indirect
30*39265Storek/*	movl	$0,8(ap)		# null mask pointer: block empty set */
31*39265Storek	movl	$1,4(ap)		# SIG_BLOCK
3238802Skarels	jbr	2f
33*39265Storek1:	movl	*8(ap),8(ap)		# indirect to new mask arg
3438802Skarels2:	chmk	$SYS_sigprocmask
3538802Skarels	jcs	err
36*39265Storek	tstl	12(ap)			# test if old mask requested
3738802Skarels	beql	out
38*39265Storek	movl	r0,*12(ap)		# store old mask
3938802Skarelsout:
4038802Skarels	clrl	r0
4138802Skarels	ret
42