Materialize Space Attributes (MATS)

Instruction Syntax

Op Code (Hex) Operand 1 Operand 2
0036 Receiver Space object
Operand 1: Space pointer.

Operand 2: System pointer.

Bound Program Access
Built-in number for MATS is 27.
MATS (
      receiver       : address
      space_object   : address of system pointer
)

Description:

The current attributes of the space object specified by operand 2 are materialized into the receiver specified by operand 1.

The template identified by operand 1 must be 16-byte aligned in the space. The format of the materialization is as follows:

Offset  
Dec Hex Field Name Data Type and Length
0 0 Materialization size specification Char(8)
0 0
  • Number of bytes provided for materialization
  • Bin(4)
4 4
  • Number of bytes available for materialization
  • Bin(4)
8 8 Object identification Char(32)
8 8
  • Object type
  • Char(1)
9 9
  • Object subtype
  • Char(1)
10 A
  • Object name
  • Char(30)
40 28 Object creation options Char(4)

40

28

  • Existence attribute

    0 = Temporary
    1 = Permanent

  • Bit 0

40

28

  • Space attribute

    0 = Fixed-length
    1 = Variable-length

  • Bit 1

40

28

  • Context

    0 = Addressability not in context
    1 = Addressability in context

  • Bit 2

40

28

  • Access group

    0 = Not member of access group
    1 = Member of access group

  • Bit 3

40 28
  • Reserved (binary 0)
  • Bits 4-12

40

28

  • Initialize space

    0 = Initialize
    1 = Do not initialize

  • Bit 13

40

28

  • Automatically extend space

    0 = No
    1 = Yes

  • Bit 14

40

28

  • Hardware storage protection level

    00 = Reference and modify allowed for user state programs
    01 = Only reference allowed for user state programs
    10 = Invalid (undefined)
    11 = No reference or modify allowed for user state programs

  • Bits 15-16

40

28

  • Reserved (binary 0)

  • Bits 17-20

40

28

  • Always enforce hardware storage protection of this space

    0 = Enforce hardware storage protection of this space only when hardware storage protection is enforced for all storage.
    1 = Enforce hardware storage protection of this space at all times.

  • Bit 21

40

28

  • Reserved (binary 0)

  • Bits 22-31

44 2C Reserved (binary 0) Char(2)
46 2E ASP number Char(2)
48 30 Size of space Bin(4)
52 34 Initial value of space Char(1)
53 35 Performance class Char(4)

53

35

  • Space alignment

    0 = The space associated with the object is allocated to allow proper alignment of pointers at 16-byte alignments within the space.
    1 = The space associated with the object is allocated to allow proper alignment of pointers at 16-byte alignments within the space as well as to allow proper alignment of input/output buffers at 512-byte alignments within the space. Ignore the value of this field when the machine chooses space alignment field has a value of 1.

  • Bit 0

53 35
  • Reserved (binary 0)
  • Bit 1

53

35

  • Spread the space object

    0 = The space object may be on one storage device.
    1 = The space object may be spread across multiple storage devices.

  • Bit 2

53

35

  • Machine chooses space alignment

    0 = The space alignment indicated by the space alignment field is in effect.
    1 = The machine chose the space alignment most beneficial to performance, which may have reduced maximum space capacity. The alignment chosen is a multiple of 512. Check the maximum size of space field value. Ignore the value of the space alignment field.

  • Bit 3

53 35
  • Reserved (binary 0)
  • Bit 4

53

35

  • Main storage pool selection

    0 = Process default main storage pool is used for object.
    1 = Machine default main storage pool is used for object.

  • Bit 5

53

35

  • Transient storage pool selection

    0 = Default main storage pool (process default or machine default as specified for main storage pool selection) is used for object.
    1 = Transient storage pool is used for object.

  • Bit 6

53

35

  • Obsolete

    This field is no longer used and will be ignored.

  • Bit 7

53

35

  • Unit number

  • Bits 8-15 +

53 35
  • Reserved (binary 0)
  • Bits 16-23
56 38
  • Expanded transfer size advisory
  • Char(1)

57

39

Reserved (binary 0)

Char(7)

64 40 Context System pointer
80 50 Access group System pointer
96 60 Reserved (binary 0) Char(16)

112

70

Maximum size of space

Bin(4)

116

74

--- End ---

 

The first 4 bytes that are materialized identify the total number of bytes provided for use by the instruction. This value is supplied as input to the instruction and is not modified by the instruction. A value of less than 8 causes a materialization length invalid (hex 3803) exception.

The second 4 bytes that are materialized identify the total number of bytes available to be materialized. The instruction materializes as many bytes as can be contained in the area specified as the receiver. If the byte area identified by the receiver is greater than that required to contain the information requested, then the excess bytes are unchanged. No exceptions (other than the materialization length exception described previously) are signaled in the event that the receiver contains insufficient area for the materialization.

See the Create Space (CRTS) instruction for descriptions of most of these fields.

The maximum size of space field returns the maximum number of bytes which may be contained in the space. For fixed-length spaces, the current size is the maximum size. This value is the actual maximum size, not the size specified for largest size needed for space on CRTS.

This instruction cannot be used to materialize the public authority specified creation option, the initial owner specified creation option, the process temporary space accounting creation option, or the template extension which can be specified on space creation. The Materialize Authority (MATAU) instruction can be used to materialize the current public authority for the space. The Materialize System Object (MATSOBJ) instruction can be used to materialize the current owner of the space.

Authorization Required

  • Operational or space authority
    • Operand 2
  • Execute
    • Contexts referenced for address resolution

Lock Enforcement

  • Materialize
    • Operand 2
    • Contexts referenced for address resolution

Exceptions

  • 06 Addressing
    • 0601 Space Addressing Violation
    • 0602 Boundary Alignment
    • 0603 Range
  • 08 Argument/Parameter
    • 0801 Parameter Reference Violation
  • 0A Authorization
    • 0A01 Unauthorized for Operation
  • 10 Damage Encountered
    • 1004 System Object Damage State
    • 1005 Authority Verification Terminated Due to Damaged Object
    • 1044 Partial System Object Damage
  • 1A Lock State
    • 1A01 Invalid Lock State
  • 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
    • 2207 Authority Verification Terminated Due to Destroyed Object
    • 2208 Object Compressed
    • 220B Object Not Available
  • 24 Pointer Specification
    • 2401 Pointer Does Not Exist
    • 2402 Pointer Type Invalid
    • 2403 Pointer Addressing Invalid Object Type
  • 2E Resource Control Limit
    • 2E01 User Profile Storage Limit Exceeded
  • 36 Space Management
    • 3601 Space Extension/Truncation
  • 38 Template Specification
    • 3803 Materialization Length Invalid
  • 44 Protection Violation
    • 4401 Object Domain or Hardware Storage Protection Violation
    • 4402 Literal Values Cannot Be Changed