Materialize Authority (MATAU)

Instruction Syntax

Op Code (Hex) Operand 1 Operand 2 Operand 3
0153 Receiver System object User profile or source template
Operand 1: Space pointer.

Operand 2: System pointer.

Operand 3: System pointer or space pointer data object or null.

Bound Program Access
Built-in number for MATAU is 58.
MATAU (
       receiver                          : address
       system_object                     : address of system pointer
       user_profile_or_source_template   : address of system pointer OR
                                           address of space pointer(16) OR
                                           null operand
)

Description:

This instruction materializes the specific types of authority for a system object available to the specified user profile. The private authorization that the user profile specified by operand 3 has to the permanent or owned temporary system object specified by operand 2, and the object's public authorization is materialized in operand 1. If operand 3 is null, then only the object's public authorization is materialized, and the private authorization field in the materialization is set to binary 0.

Except for certain special cases, the authority to be materialized is determined by first checking for direct authority to the object itself, then checking for indirect authority to the object through authority to an authority list containing the object. The first source of authority found is materialized and the source is indicated in the materialization.

The special case of the operand 3 user profile having all object special authority overrides any explicit private authorities that the user profile might hold to the object or its containing authority list and results in a materialization showing that the profile holds all private authorities directly to the object.

The special case of the operand 2 object being in an authority list which has the override specific object authority attribute in effect results in the authorization or lack of authorization held to the authority list completely overriding the explicit private authorities that the user profile might hold to the object. This case results in a materialization showing that the profile has just the private authorities it holds or doesn't hold to the authority list. That is, if the user profile has private authority to the object, but doesn't have private authority to the authority list, the materialization will show that the user does not have any private authority to the object. Similarly, if the user profile has both private authority to the object and to the authority list, the materialization will show that the user has only the private authority through the authority list. If operand 3 is null, then only the object's public authorization is materialized, and the private authorization field in the materialization is set to binary 0s.

Operand 3 may be specified as a system pointer which directly addresses the user profile to be checked as a source of authority or as a space pointer to a source template which identifies the source user profile. Specifying a template allows for additional controls over how the materialize operation is to be performed. The format of the source template is the following:

Offset  
Dec Hex Field Name Data Type and Length
0 0 Source flags Char(2)

0

0

  • Ignore all object special authority

    0 =
    No
    1 =
    Yes

  • Bit 0

0 0
  • Reserved (binary 0)
  • Bits 1-15
2 2 Reserved (binary 0) Char(14)
16 10 User profile System pointer

32

20

--- End ---

 

The ignore all object special authority source flag specifies whether special authority is to be ignored during the materialize operation. When yes is specified, just the explicitly held private authority that the specified user profile holds either directly to the object or indirectly to an authority list containing the object will be materialized. When no is specified, the authority provided by all object special authority, if held by the source user profile, is included and results in a materialization showing that the profile holds all private authorities directly to the object. No is the default for this flag value when the source template is not specified.

The user profile field specifies the user profile to be checked as a source of authority.

The format of the materialization (operand 1) 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
    (contains a value of 16 for this instruction)

  • Bin(4)

8 8 Private authorization (1 = authorized) Char(2)
8 8
  • Object control
  • Bit 0
8 8
  • Object management
  • Bit 1
8 8
  • Authorized pointer
  • Bit 2
8 8
  • Space authority
  • Bit 3
8 8
  • Retrieve
  • Bit 4
8 8
  • Insert
  • Bit 5
8 8
  • Delete
  • Bit 6
8 8
  • Update
  • Bit 7
8 8
  • Ownership (1 = yes)
  • Bit 8
8 8
  • Excluded
  • Bit 9
8 8
  • Authority list management
  • Bit 10
8 8
  • Execute
  • Bit 11
8 8
  • Alter
  • Bit 12
8 8
  • Reference
  • Bit 13
8 8
  • Reserved (binary 0)
  • Bits 14-15
10 A Public authorization (1 = authorized) Char(2)
10 A
  • Object control
  • Bit 0
10 A
  • Object management
  • Bit 1
10 A
  • Authorized pointer
  • Bit 2
10 A
  • Space authority
  • Bit 3
10 A
  • Retrieve
  • Bit 4
10 A
  • Insert
  • Bit 5
10 A
  • Delete
  • Bit 6
10 A
  • Update
  • Bit 7
10 A
  • Reserved (binary 0)
  • Bit 8
10 A
  • Excluded
  • Bit 9
10 A
  • Authority list management
  • Bit 10
10 A
  • Execute
  • Bit 11
10 A
  • Alter
  • Bit 12
10 A
  • Reference
  • Bit 13
10 A
  • Reserved (binary 0)
  • Bits 14-15

12

C

Private authorization source

0 =
Authority to object
1 =
Authority to authority list
2 =
Authority to object via primary group
3 =
Authority to authority list via primary group

UBin(2)

14

E

Public authorization source

0 =
Authority from object
1 =
Authority from authority list

UBin(2)

16

10

--- End ---

 

The first 4 bytes of the materialization 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 the materialization length invalid (hex 3803) exception.

The second 4 bytes of the materialization identify the total number of bytes available to be materialized (16 for this instruction). 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) are signaled in the event that the receiver contains insufficient area for the materialization.

Any of the four authorizations– retrieve, insert, delete, or update–constitute operational authority.

If this instruction references an unowned temporary object, all public authority states are materialized. Private authority states are not applicable to these objects, and are set to binary 0.

Authorization Required

  • Operational
    • Operand 3
  • Execute
    • Contexts referenced for address resolution

Lock Enforcement

  • Materialize
    • Operand 2
    • Operand 3
    • 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
    • 1002 Machine Context Damage State
    • 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