Materialize Machine Data (MATMDATA)

Instruction Syntax

Op Code (Hex) Operand 1 Operand 2
0522 Receiver Materialization option
Operand 1: Character variable scalar.

Operand 2: Character(2) constant, or unsigned binary(2) constant or immediate.

Bound Program Access
Built-in number for MATMDATA is 160.
MATMDATA (
          receiver                 : address
          materialization_option   : literal(2) OR
                                     literal(4)
)

The materialization_option may be declared as a literal of any scalar data type.


-- OR --

 Built-in number for MATTOD is 94.
 MATTOD ( time_of_day   : address ) 
 

The time-of-day clock is materialized. This function is identical to MATMDATA when a materialization_option value of Hex 0000 is specified.

Description:

The machine data requested by materialization option is returned at the location specified by receiver. For the purposes of this instruction, machine data refers to any data that is encapsulated by the machine. The data can be either thread-specific or apply system-wide.

Operand 2 is a 2-byte value. The value of operand 2 determines which machine data are materialized. Operand 2 is restricted to a constant character or unsigned binary scalar or an immediate value. A summary of the allowable values for Operand 2 follows.

Table 1. Materialization option
Option value Description Page
Hex 0000 Materialize time-of-day clock as local time with a value that is unique "Hex 0000 = Materialize time-of-day clock as local time with a value that is unique"
Hex 0001 Materialize system parameter integrity validation flag "Hex 0001 = Materialize system parameter integrity validation flag"
Hex 0002 Materialize thread execution mode flag "Hex 0002 = Materialize thread execution mode flag"
Hex 0003 Materialize maximum size of a space object or associated space when space alignment is chosen by the machine "Hex 0003 = Materialize maximum size of a space object or associated space when space alignment is chosen by the machine"
Hex 0004 Materialize time-of-day clock as Coordinated Universal Time (UTC) with a value that is unique "Hex 0004 = Materialize time-of-day clock as Coordinated Universal Time (UTC)"
Hex 0005 Materialize the machine default page size "Hex 0005 = Materialize machine default page size"
Hex 0006 Materialize the teraspace segment size "Hex 0006 = Materialize teraspace segment size"
Hex 0007 Materialize time-of-day clock as local time with a value that is not unique "Hex 0007 = Materialize time-of-day clock as local time with a value that is not unique"
Hex 0008 Materialize time-of-day clock as Coordinated Universal Time (UTC) with a value that is not unique "Hex 0008 = Materialize time-of-day clock as Coordinated Universal Time (UTC) with a value that is not unique"
Hex 0009 through FFFF Reserved

Operand 1 specifies a receiver into which the materialized data is placed. It must specify a character scalar with a minimum length which is dependent upon the materialization option specified for operand 2. The receiver may be substringed. The start position of the substring may be a variable. However, the length of the substring must be an immediate or constant. The length specified for operand 1 must be at least the required minimum. Only the bytes up to the required minimum length are used. Any excess bytes are ignored.

The data placed into the receiver differs depending upon the materialization option specified. The following descriptions detail the formats of the optional materializations.

Hex 0000 = Materialize time-of-day clock as local time with a value that is unique (minimum receiver length is 8)
Offset  
Dec Hex Field Name Data Type and Length
0 0 Time of day Char(8)

8

8

--- End ---

 

Time of day is the time value of the time-of-day clock which is returned as the local time for the system. The uniqueness bits contain a combination of binary 1s and 0s thereby providing a time value that is unique for the system. See Standard Time Format for a detailed description of the format for a time value.

Unpredictable results occur if the time-of-day clock is materialized before it is set.

The time-of-day clock can be materialized as the Coordinated Universal Time (UTC) for the system using "Hex 0004 = Materialize time-of-day clock as Coordinated Universal Time (UTC)".

See Time-of-Day (TOD) Clock for detailed descriptions of the time-of-day clock, local time, and UTC.

Performance note: The time-of-day clock may be materialized, with the time of day returned as the local time for the system, with this instruction and also with the Materialize Machine Attributes (MATMATR) instruction. Better performance may be realized with the use of this instruction rather than with the MATMATR instruction.

Hex 0001 = Materialize system parameter integrity validation flag (minimum receiver length is 1)
Offset  
Dec Hex Field Name Data Type and Length
0 0 System parameter integrity validation flag Char(1)

1

1

--- End ---

 

This option returns the value of the machine attribute which specifies whether additional validation of parameters passed to programs which run when the thread is in system state is to be performed, such as for U. S. government's Department of Defense security ratings.

A value of hex 01 indicates this additional checking is being performed. A value of hex 00 is returned otherwise.

Hex 0002 = Materialize thread execution mode flag (minimum receiver length is 1)
Offset  
Dec Hex Field Name Data Type and Length
0 0 Thread execution mode flag Char(1)

1

1

--- End ---

 

This option returns the value of the thread execution mode for the thread in which the instruction is run.

A returned value of hex 01 indicates that thread is currently executing in kernel mode. A value of hex 00 is returned otherwise.

Hex 0003 = Materialize maximum size of a space object or associated space when space alignment is chosen by the machine (minimum receiver length is 4)
Offset  
Dec Hex Field Name Data Type and Length
0 0 Maximum size of machine-aligned space object or associated space UBin(4)

4

4

--- End ---

 

This option returns the maximum size in bytes of a space object or associated space created with the space alignment chosen by the machine. Some types of objects may not support an associated space of the maximum size.

This size may vary with each machine implementation.

Hex 0004 = Materialize time-of-day clock as Coordinated Universal Time (UTC) (minimum receiver length is 8)
Offset  
Dec Hex Field Name Data Type and Length
0 0 Time of day Char(8)

8

8

--- End ---

 

Time of day is the time value of the time-of-day clock which is returned as the Coordinated Universal Time (UTC) for the system. The uniqueness bits contain a combination of binary 1s and 0s thereby providing a time value that is unique for the system. See Standard Time Format for a detailed description of the format for a time value.

Unpredictable results occur if the time-of-day clock is materialized before it is set.

The time-of-day clock can be materialized as the local time for the system using "Hex 0000 = Materialize time-of-day clock as local time with a value that is unique".

See Time-of-Day (TOD) Clock for detailed descriptions of the time-of-day clock, local time, and UTC.

Performance note: The time-of-day clock may be materialized, with the time of day returned as the UTC for the system, with this instruction and also with the Materialize Time Of Day Attributes (MATTODAT) instruction. Better performance may be realized with the use of this instruction rather than with the MATTODAT instruction.

Hex 0005 = Materialize machine default page size (minimum receiver length is 8)
Offset  
Dec Hex Field Name Data Type and Length

0

0

Machine default page size
For non-bound programs, the following datatype is used:

UBin(8)

0 0
  • Machine default page size
  • Char(8)

8

8

--- End ---

 

This option returns the default machine page size (in bytes) for the current machine implementation. See Storage terminology for additional information on the machine default page size.

Hex 0006 = Materialize teraspace segment size (minimum receiver length is 8)
Offset  
Dec Hex Field Name Data Type and Length
0 0 Teraspace segment size UBin(8)
   
  • For non-bound programs, the following datatype is used:
 
0 0
  • Teraspace segment size
  • Char(8)

8

8

--- End ---

 

This option returns the teraspace segment size (in bytes) for the current machine implementation. See Storage terminology for additional information on teraspace segments.

Hex 0007 = Materialize time-of-day clock as local time with a value that is not unique (minimum receiver length is 8)
Offset  
Dec Hex Field Name Data Type and Length
0 0 Time of day Char(8)

8

8

--- End ---

 

Time of day is the time value of the time-of-day clock which is returned as the local time for the system. The uniqueness bits all contain binary 0s thereby providing a time value that is not unique for the system. See Standard Time Format for a detailed description of the format for a time value.

Unpredictable results occur if the time-of-day clock is materialized before it is set.

See Time-of-Day (TOD) Clock for detailed descriptions of the time-of-day clock, local time, and UTC.

Hex 0008 = Materialize time-of-day clock as Coordinated Universal Time (UTC) with a value that is not unique (minimum receiver length is 8)
Offset  
Dec Hex Field Name Data Type and Length
0 0 Time of day Char(8)

8

8

--- End ---

 

Time of day is the time value of the time-of-day clock which is returned as the Coordinated Universal Time (UTC) for the system. The uniqueness bits all contain binary 0s thereby providing a time value that is not unique for the system. See Standard Time Format for a detailed description of the format for a time value.

Unpredictable results occur if the time-of-day clock is materialized before it is set.

See Time-of-Day (TOD) Clock for detailed descriptions of the time-of-day clock, local time, and UTC.

Authorization Required

  • None

Lock Enforcement

  • None

Exceptions

  • 06 Addressing
    • 0601 Space Addressing Violation
    • 0602 Boundary Alignment
    • 0603 Range
  • 08 Argument/Parameter
    • 0801 Parameter Reference Violation
  • 10 Damage Encountered
    • 1004 System Object Damage State
    • 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
    • 2201 Object Not Found
    • 2202 Object Destroyed
    • 2203 Object Suspended
    • 220B Object Not Available
  • 24 Pointer Specification
    • 2401 Pointer Does Not Exist
    • 2402 Pointer Type Invalid
  • 2E Resource Control Limit
    • 2E01 User Profile Storage Limit Exceeded
  • 32 Scalar Specification
    • 3201 Scalar Type Invalid
    • 3202 Scalar Attributes Invalid
    • 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