Materialize Space Attributes (MATS)


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



0 = Temporary
1 = Permanent



40 28
Space attribute
Bit 1



0 = Fixed-length
1 = Variable-length



40 28
Context
Bit 2



0 = Addressability not in context
1 = Addressability in context



40 28
Access group
Bit 3



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



40 28
Reserved (binary 0)
Bits 4-12
40 28
Initialize space
Bit 13



0 = Initialize
1 = Do not initialize



40 28
Automatically extend space
Bit 14



0 = No
1 = Yes



40 28
Hardware storage protection level
Bits 15-16



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



40 28
Reserved (binary 0)
Bits 17-20






40 28
Always enforce hardware storage protection of this space
Bit 21



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.



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



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.


53 35
Reserved (binary 0)
Bit 1
53 35
Spread the space object
Bit 2



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



53 35
Machine chooses space alignment
Bit 3



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.



53 35
Reserved (binary 0)
Bit 4
53 35
Main storage pool selection
Bit 5



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



53 35
Transient storage pool selection
Bit 6



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.



53 35
Obsolete
Bit 7



This field is no longer used and will be ignored.



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

Lock Enforcement

Exceptions

06 Addressing

08 Argument/Parameter

0A Authorization

10 Damage Encountered

1A Lock State

1C Machine-Dependent

20 Machine Support

22 Object Access

24 Pointer Specification

2E Resource Control Limit

36 Space Management

38 Template Specification

44 Protection Violation