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) | |
13 | .asciz "@(#)sigprocmask.s 5.1 (Berkeley) %G%" | |
14 | #endif /* LIBC_SCCS and not lint */ | |
15 | ||
16 | #include "SYS.h" | |
17 | ||
18 | err: | |
19 | jmp cerror | |
20 | ||
21 | ENTRY(sigprocmask) | |
22 | tstl sp@(8) /* check new sigset pointer */ | |
23 | jne gotptr /* if not null, indirect */ | |
24 | /* movl #0,sp@(8) /* null mask pointer: block empty set */ | |
25 | movl #1,sp@(4) /* SIG_BLOCK */ | |
26 | jra doit | |
27 | gotptr: | |
28 | movl sp@(8),a0 | |
29 | movl a0@,sp@(8) /* indirect to new mask arg */ | |
30 | doit: | |
31 | movl #SYS_sigprocmask,d0 | |
32 | trap #0 | |
33 | jcs err | |
34 | tstl sp@(12) /* test if old mask requested */ | |
35 | jeq out | |
36 | movl sp@(12),a0 | |
37 | movl d0,a0@ /* store old mask */ | |
38 | out: | |
39 | clrl d0 | |
40 | rts |