Op Code (Hex) | Operand 1 | |||
---|---|---|---|---|
RINZSTAT 02C1 | Activation template |
Bound program access |
---|
|
The following information is subject to change from release to release. Use it with caution and be prepared to adjust for changes with each new release.
Note |
---|
It is recommended that you use the RINZSTAT2 instruction which supports 8-byte activation group marks. 4-byte marks can wrap and produce unexpected results. |
This instruction reinitializes the static storage for eligible previously activated bound programs, including bound service programs. To be eligible, the program must have the allow static storage re-initialization attribute set. The activation mark of any affected program activation is not changed.
Operand 1 must contain a space pointer to the activation template.
The activation template must be quadword aligned. The format of the structure is different for the RINZSTAT and the RINZSTAT2 instructions.
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Activation template |
| Char(24) | ||||||||
0 | 0 |
| System pointer to the program |
| System pointer | ||||||||
16 | 10 |
| Activation group mark |
| UBin(8) | ||||||||
|
|
|
For Non-Bound programs, the following datatype should be used:
| ||||||||||
16 | 10 |
| Activation group mark (Non-Bound program) |
| Char(8) | ||||||||
24 | 18 |
| --- End --- |
|
|
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Activation template |
| Char(20) | ||||||||
0 | 0 |
| System pointer to the program |
| System pointer | ||||||||
16 | 10 |
| Activation group mark |
| UBin(4) | ||||||||
20 | 14 |
| --- End --- |
|
|
If the system pointer to the program is a null pointer value, all eligible activations of bound programs or bound service programs within the activation group specified by the activation group mark will be interrogated.
If the thread is in user state at the time this instruction is invoked and the activation group, specified by the activation group mark, is a system state activation group an activation group access violation (hex 2C12) exception will be signalled. The user must have adequate authority to all bound programs with the allow static storage re-initialization attribute in the activation group or none of the programs will be reinitialized.
If the system pointer to the program is not a null pointer value, only the program activation in the activation group specified, provided there is adequate authority and the program has the allow static storage re-initialization attribute, will have its static storage reinitialized. If the activation group specified by the activation group mark is not found, an activation group not found (hex 2C13) exception will be signalled. If the program activation can not be found in the activation group, an invalid operation for program (hex 2C15) exception will be signalled. If the program does not have the allow static storage re-initialization attribute set, an invalid operation for program (hex 2C15) exception will be signalled.
The activation group mark uniquely identifies an activation group within a process. A value of zero is interpreted to be a request to use the activation group of the current invocation.
Exported data to the activation group will not be changed.
Static storage is initialized by the machine each time a program (bound program or bound service program) is activated or reinitialized via this instruction. Only those static storage locations specified by the high-level language (HLL) compiler are initialized by the machine. Other locations are uninitialized. The machine can only initialize static storage with values which can be specified as constants at compile-time. Complex values which can only be evaluated at run-time cannot be initialized using this mechanism. For example, the current time of day or the "construction" of a C++ object.
Some HLL compilers (e.g. C++) make use of additional run-time static initialization (s-init) mechanisms to initialize variables with complex values. The s-init mechanism is triggered by execution of the program entry point (PEP) of a bound program and is supported by language run-time code. The RINZSTAT instruction does not cause this s-init code to be re-executed. The use of the RINZSTAT instruction on a program containing s-init items can lead to an inconsistent internal state of the program.
06 Addressing
0A Authorization
10 Damage Encountered
1A Lock State
1C Machine-Dependent
20 Machine Support
22 Object Access
24 Pointer Specification
2C Program Execution
2E Resource Control Limit
36 Space Management
44 Protection Violation