xref: /original-bsd/lib/libc/vax/sys/sigprocmask.s (revision 21b9697b)
1/*
2 * Copyright (c) 1989 Regents of the University of California.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms are permitted
6 * provided that the above copyright notice and this paragraph are
7 * duplicated in all such forms and that any documentation,
8 * advertising materials, and other materials related to such
9 * distribution and use acknowledge that the software was developed
10 * by the University of California, Berkeley.  The name of the
11 * University may not be used to endorse or promote products derived
12 * from this software without specific prior written permission.
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16 */
17
18#if defined(SYSLIBC_SCCS) && !defined(lint)
19	.asciz "@(#)sigprocmask.s	5.2 (Berkeley) 10/10/89"
20#endif /* SYSLIBC_SCCS and not lint */
21
22#include "SYS.h"
23
24err:
25	jmp	cerror
26
27ENTRY(sigprocmask)
28	tstl	8(ap)			# check new sigset pointer
29	bneq	1f			# if not null, indirect
30/*	movl	$0,8(ap)		# null mask pointer: block empty set */
31	movl	$1,4(ap)		# SIG_BLOCK
32	jbr	2f
331:	movl	*8(ap),8(ap)		# indirect to new mask arg
342:	chmk	$SYS_sigprocmask
35	jcs	err
36	tstl	12(ap)			# test if old mask requested
37	beql	out
38	movl	r0,*12(ap)		# store old mask
39out:
40	clrl	r0
41	ret
42