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