Op Code (Hex) | Operand 1 | Operand 2 | Operand 3 | |
---|---|---|---|---|
0153 | Receiver | System object | User profile or source template |
Operand 2: System pointer.
Operand 3: System pointer or space pointer data object or null.
Bound program access |
---|
|
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 |
| 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 |
| 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) | ||||||||||||||||
|
|
|
| ||||||||||||||||||
14 | E |
| Public authorization source |
| 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.
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