Op Code (Hex) | Operand 1 | |||
---|---|---|---|---|
MATPRAGP 0331 | Receiver |
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 MATPRAGP2 instruction which supports 8-byte activation group marks. 4-byte marks can wrap and produce unexpected results. |
This instruction provides a list of the activation groups which exist in the current process. Operand 1 locates a template which receives information.
The materialization template identified by operand 1 must be 16-byte
aligned in the space. This materialization template has the following
format:
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
0 | 0 |
| Number of bytes provided for materialization |
| Bin(4) | ||||||||
4 | 4 |
| Number of bytes available for materialization |
| Bin(4) | ||||||||
8 | 8 |
| Activation group count |
| Bin(4) | ||||||||
12 | C |
| Activation group list |
| Char(*) | ||||||||
* | * |
| --- End --- |
|
|
The activation group list format is different for MATPRAGP and MATPRAGP2.
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
12 | C |
| Reserved |
| Char(4) | ||||||||
16 | 10 |
| Activation group list |
| [*] Char(8) | ||||||||
|
|
|
(repeated activation group count times)
| ||||||||||
16 | 10 |
| Activation group marks |
| UBin(8) | ||||||||
|
|
|
For Non-Bound programs, the following datatype should be used:
| ||||||||||
16 | 10 |
| Activation group marks (Non-Bound program) |
| Char(8) | ||||||||
* | * |
| --- End --- |
|
|
Offset | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Dec | Hex |
| Field Name |
| Data Type and Length | ||||||||
12 | C |
| Activation group list |
| [*] Char(4) | ||||||||
|
|
|
(repeated activation group count times)
| ||||||||||
12 | C |
| Activation group marks |
| UBin(4) | ||||||||
* | * |
| --- End --- |
|
|
The Materialize Activation Group Attributes instruction can be used to examine the attributes of an individual activation group.
The first 4 bytes of the materialization template specify the number of bytes provided for use by the instruction. In all cases if the number of bytes provided is less than 8 then a materialization length invalid (hex 3803) exception will be signaled.
The second 4 bytes of the instruction indicate the actual number of bytes available to be returned. In no case does the instruction return more bytes of information than those available.
Activation group count | This is the number of activation groups within the process. It is also the extent of the activation group list which follows. |
Activation group list | This is the list of activation groups which exist within the current process. |
Activation group marks | This is an array of activation group mark values. Each entry denotes an activation group currently existent within the process. The value returned in the 4-byte activation group mark may have wrapped. |
06 Addressing
08 Argument/Parameter
10 Damage Encountered
1C Machine-Dependent
20 Machine Support
38 Template Specification
44 Protection Violation