Materialize Activation Export (MATACTEX)

Instruction Syntax

Bound Program Access
Built-in number for MATACTEX2 is 660.
MATACTEX2 (                                                                     
          activation_mark   : unsigned binary(8)                                   
          ident_type        : unsigned binary(4)                                   
          number            : unsigned binary(4)                                   
          name              : address                                          
          pointer           : address of procedure pointer(16) OR                          
                              address of space pointer(16)                             
          export_type       : address of unsigned binary(4)                       
)                                                                               
                                                                                
OR                                                                              
                                                                                
Built-in number for MATACTEX is 460.
MATACTEX (                                                                      
          activation_mark   : unsigned binary(4)                                   
          ident_type        : unsigned binary(4)                                   
          number            : unsigned binary(4)                                   
          name              : address                                          
          pointer           : address of procedure pointer(16) OR                          
                              address of space pointer(16)                             
          export_type       : address of unsigned binary(4)                       
)                                                                               

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 MATACTEX2 instruction which supports 8-byte activation marks. 4-byte marks can wrap and produce unexpected results.

Description:

This instruction returns the address of an export identified by name or export identifier from a specified program activation. The type of the export item, either data or procedure, is also returned. If the item is not found, an indicator is returned via the export type operand; no exception is signaled in this case.

Operands are as follows,

  • activation mark (input) specifies the activation mark of a bound service program. If the specified program activation does not exist then a program activation not found (hex 2C16) exception is signaled. If the activation mark does not correspond to a bound service program then an invalid operation for program (hex 2C15) exception is signaled.
  • ident type (input) specifies how the export is identified.
    0 =
    reserved
    1 =
    by export ID. The item is identified by export identifier (or export ID.) The number operand specifies the export ID of the item. An export ID is the ordinal position, starting from 1, of the item in the bound service program's export list.
    2 =
    by name. The item is identified by name. The name operand provides the symbolic name of the item. The length of the name is specified by the number operand.
    >2 =
    reserved

    Use of a reserved value causes a scalar value invalid (hex 3203) exception to be signaled.

  • number (input) specifies either the export ID or length of the character string which supplies the name.
  • name (input) specifies the character string name. This operand is ignored if ident type is not 2, but must always be specified.
  • pointer (address in, value out) specifies either a procedure pointer or space pointer to the exported item. If the requested export does not exist, 16 bytes of storage at the location indicated by this operand are set to binary 0.
  • export type (address in, value out) identifies the type of export,
    • 0 = item not found
    • 1 = procedure export
    • 2 = data export
    • 3 = inaccessible data export
    If the item was not found the pointer is also set to binary 0.

The thread must have execute authority to the program specified by the activation mark in order to obtain the address of an exported item. In addition, a user state program may only materialize data exports from activations within the same activation group. An attempt to materialize a data export from another activation group will result in a value of 3 for export type and binary 0 being returned in the pointer operand. A system state program may materialize data exports from any activation.

Authorization Required

  • Execute
    • Program specified by activation mark.

Lock Enforcement

  • None

Exceptions

  • 06 Addressing
    • 0601 Space Addressing Violation
    • 0602 Boundary Alignment
  • 08 Argument/Parameter
    • 0801 Parameter Reference Violation
  • 10 Damage Encountered
    • 1004 System Object Damage State
    • 1005 Authority Verification Terminated Due to Damaged Object
    • 1044 Partial System Object Damage
  • 1C Machine-Dependent
    • 1C03 Machine Storage Limit Exceeded
  • 20 Machine Support
    • 2002 Machine Check
    • 2003 Function Check
  • 22 Object Access
    • 2202 Object Destroyed
    • 220B Object Not Available
  • 24 Pointer Specification
    • 2401 Pointer Does Not Exist
    • 2402 Pointer Type Invalid
  • 2C Program Execution
    • 2C15 Invalid Operation for Program
    • 2C16 Program Activation Not Found
  • 2E Resource Control Limit
    • 2E01 User Profile Storage Limit Exceeded
  • 32 Scalar Specification
    • 3203 Scalar Value Invalid
  • 36 Space Management
    • 3601 Space Extension/Truncation
  • 44 Protection Violation
    • 4401 Object Domain or Hardware Storage Protection Violation
    • 4402 Literal Values Cannot Be Changed