The RISGNL macro uses the emergency signal (EMS) order code of the signal processor (SIGP) instruction to invoke the execution of a specified software program on a specific processor in a multiprocessing configuration. The program may be requested to execute in parallel or serially with the function requesting the program. The specified software program (receiving routine) gets control disabled, in key 0, and supervisor state. The receiving routine cannot enable for I/O or external interrupts, request locks, or issue SVCs. In addition, the receiving routine must return via the address in register 14.
The requirements for the caller are:
Environmental factor | Requirement |
---|---|
Minimum authorization: | Supervisor state and PSW key 0 |
Dispatchable unit mode: | Task or SRB |
Cross memory mode: | PASN=HASN=SASN or PASN¬=HASN¬=SASN |
AMODE: | 24- or 31-bit |
ASC mode: | Primary or secondary |
Interrupt status: | Enabled or disabled for I/O and external interrupts |
Locks: | No locks required |
Control parameters: | None |
If the receiving routine establishes an FRR, the FRR should not depend on the storage areas passed to it by the signalling routine. When alternate CPU recovery (ACR) is active, the signalling routine might receive control from RISGNL before the receiving routine's FRR gets control. IBM® recommends that the receiving routine's FRR access only storage areas owned independently of the signalling routine. If the receiving routine's FRR attempts to access storage and the signalling routine has already freed the storage, the FRR might abnormally end.
Before issuing the RISGNL macro, the caller does not have to place any information into any register unless using it in register notation for a particular parameter, or using it as a base register.
After the caller issues the macro, the system might use some registers as work registers or might change the contents of some registers. When the system returns control to the caller, the contents of these registers are not the same as they were before the macro was issued. Therefore, if the caller depends on these registers containing the same value before and after issuing the macro, the caller must save these registers before issuing the macro and restore them after the system returns control.
None.
The RISGNL macro is written as follows:
Syntax | Description |
---|---|
name | name: Symbol. Begin name in column 1. |
␢ | One or more blanks must precede RISGNL. |
RISGNL | |
␢ | One or more blanks must follow RISGNL. |
PARALLEL | |
SERIAL | |
,CPU=PCCA addr | PCCA addr: RX-type address, or register (1). |
,EP=entry name addr | entry name addr: RX-type address, or register (12). |
,PARM=parm addr | parm addr: RX-type address, or register (11). |
The parameters are explained as follows:
07B
See z/OS MVS System Codes for an explanation and programmer responses for this code.
When the RISGNL macro returns control to your program, GPR 15 contains a hexadecimal return code.
Return Code | Meaning and Action |
---|---|
00 | Meaning: Specified receiving routine has
been given control or has completed execution, as requested. Action: None. |
04 | Meaning: Environmental error. Function
not initiated because addressed processor not online. If it appeared
to be online, it is no longer in the configuration. Action: None required. However, you might take some action based upon your application. |
14 | Meaning: Environmental error. Function
not initiated because addressed processor was taken offline during
RISGNL processing. Action: None required. However, you might take some action based upon your application. |
RISGNL PARALLEL,CPU=(1),EP=(12)
RISGNL SERIAL,CPU=(1),EP=(12),PARM=(11)