xref: /original-bsd/lib/libc/tahoe/sys/sigprocmask.s (revision da818fbb)
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.1 (Berkeley) 08/27/89"
20#endif /* SYSLIBC_SCCS and not lint */
21
22#include "SYS.h"
23
24err:
25	jmp	cerror
26
27ENTRY(sigprocmask)
28	tstl	8(fp)			# check new sigset pointer
29	bneq	1f			# if not null, indirect
30	movl	$0,8(fp)		# null mask pointer: block empty set
31	movl	$1,4(fp)		# SIG_BLOCK
32	jbr	2f
331:	movl	*8(fp),8(fp)		# indirect to new mask arg
342:	kcall	$SYS_sigprocmask
35	jcs	err
36	tstl	12(fp)			# test if old mask requested
37	beql	out
38	movl	r0,*12(fp)		# store old mask
39out:
40	clrl	r0
41	ret
42