Materialize Process Activation Groups (MATPRAGP)


Op Code (Hex) Operand 1


MATPRAGP 0331 Receiver


Operand 1: Space pointer.

Bound program access

Built-in number for MATPRAGP2 is 662. MATPRAGP2 ( receiver : address )

Built-in number for MATPRAGP is 123. MATPRAGP ( receiver : address )

Warning

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.

Description

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.

Format for MATPRAGP2 activation group list

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 ---

Format for MATPRAGP activation group list

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.

Authorization

Lock Enforcement

Exceptions

06 Addressing

08 Argument/Parameter

10 Damage Encountered

1C Machine-Dependent

20 Machine Support

38 Template Specification

44 Protection Violation