Materialize Authority (MATAU)


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 profilestart of change specified by operand 3 has to the permanent or owned temporary system object specified by operand 2, and the object's end of change 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
Bit 0



0 = No
1 = Yes



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
Bin(4)



(contains a value of 16 for this instruction)


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
UBin(2)



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


14 E
Public authorization source
UBin(2)



0 = Authority from object
1 = Authority from authority list


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.

start of change 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. end of change

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