sys_rt_sigprocmask  [kernel/signal.c]


Changes or retrieves the signal mask of the set of currently blocked signals.

Arguments

eax 175
ebx Operation to perform. It may be one of the following values:
SIG_BLOCK The set of blocked signals is the union of the current set and the value pointed by ecx
SIG_UNBLOCK The signals specified in the value pointed by ecx are removed from the current set of blocked signals. It is legal to attempt to unblock a signal which is not blocked.
SIG_SETMASK The set of blocked signals is set to the argument pointed by ecx.
ecx Pointer to a value specifying the signal mask. If ecx is null, the signal mask is unchanged and ebx is ignored.
edx Pointer to a integer which will receive the previous value of the signal mask (this argument may be null).
esi Size of the sigset_t (see include/asm-i386/signal.h).

Return values

If the system call succeeds the return value is 0.
If the system call fails the return value is one of the following errno values:

-EINVAL The value specified in ebx was invalid.
-EFAULT ecx or edx points to memory which is not a valid part of the process address space.

Remarks

The use of sys_sigprocmask is unspecified in a multithreaded process.

It is not possible to block SIGKILL or SIGSTOP. Attempts to do so are silently ignored.

If SIGBUS, SIGFPE, SIGILL, or SIGSEGV are generated while they are blocked, the result is undefined, unless the signal was generated by the sys_kill.

Compatibility

n/a