The sigqueue callable service queues a signal to a process, a process group, or all processes in the system to which the caller has permission to queue a signal.
Operation | Environment |
---|---|
Authorization: | Problem program or supervisor state, any PSW key |
Dispatchable unit mode: | Task |
Cross memory mode: | PASN = HASN |
AMODE (BPX1SGQ): | 31-bit |
AMODE (BPX4SGQ): | 64-bit |
ASC mode: | Primary address space control (ASC) mode |
Interrupt status: | Enabled for interrupts |
Locks: | Unlocked |
Control parameters: | All parameters must be addressable by the caller and in the primary address space. |
|
AMODE 64 callers use BPX4SGQ with the same parameters. Signal_Value is a doubleword field.
Note the restrictions in Characteristics and restrictions.
The name of a fullword that contains the signal number that is to be queued to the processes indicated by the Process_ID parameter. The signal number must be defined in the BPXYSIGH macro, or it must be 0. See BPXYSIGH — Signal constants.
If the signal is 0, error checking takes place, but no signal is queued. Use a signal value of 0 to verify that the Process_ID parameter is correct before actually queuing a signal. This method does not verify permission to queue the signal to the specified Process_ID.
The name of a fullword (doubleword) that contains data to be delivered with the signal.
The name of a fullword that contains the binary flags that describe how the signal is to be handled by the system and the user-supplied signal interface routine (SIR). This byte of user information is passed to the SIR in a data structure mapped by the PBXYPPSD macro. See BPXYPPSD — Map signal delivery data.
The name of a fullword in which the sigqueue service returns 0 if it has permission to queue the specified signal to any of the processes specified by the Process_ID parameter. A return value of 0 means that a signal was queued (or could have been queued, if the signal value was 0) to at least one of the specified processes.
If a signal is not queued, the return value is -1.
The name of a fullword in which the sigqueue service stores the return code. The sigqueue service stores a return code only if the return value is -1. See z/OS UNIX System Services Messages and Codes for a complete list of possible return code values. The sigqueue service may return one of the following values in the Return_code parameter:
Return code | Explanation |
---|---|
EAGAIN | The caller has reached the maximum number of queued signals (MAXQUEUEDSIGS) allowed in a process. |
EINVAL | The value specified in the Signal parameter is incorrect, or not the number of a supported signal. |
EMVSSAF2ERR | The SAF ck_process_owner (IRRSKO00) callable service returned with an unexpected error. |
EPERM | The caller does not have permission to queue the signal to any process specified in the Process_ID parameter. |
ESRCH | No processes or process groups corresponding to the value specified in the Process_ID parameter were found. |
The name of a fullword in which the sigqueue service stores the reason code. The sigqueue service stores a reason code only when the return value is -1. The reason code further qualifies the return code value. See z/OS UNIX System Services Messages and Codes for the reason codes.
Security product return code | Security product reason code | Explanation |
---|---|---|
8 | 4 | The caller is not the owner of the target process. |
8 | 12 | There was an internal error during security product processing. |
For an example using this callable service, see BPX1SGQ (sigqueue) example.