Test Extended Authorities (TESTEAU)
Instruction Syntax
Op Code (Hex) | Extender | Operand 1 | Operand 2 | Operand 3 | Operand [4-5] |
---|---|---|---|---|---|
TESTEAU 10FB | Available authority template receiver | Required authority template | Relative invocation | ||
TESTEAUB 1CFB | Branch options | Available authority template receiver | Required authority template | Relative invocation | Branch targets |
TESTEAUI 18FB | Indicator options | Available authority template receiver | Required authority template | Relative invocation | Indicator targets |
Operand 2: Character(8) scalar.
Operand 3: Binary(2) variable scalar or constant or null.
Operand 4-5:
- Branch Form–Branch point, instruction pointer, relative instruction number, or absolute instruction number.
- Indicator Form–Numeric variable scalar or character variable scalar.
Bound Program Access |
---|
The return code will be set as follows:
This built-in function is used to provide support for the branch and indicator forms of the TESTEAU operation. The user must specify code to process the return code and perform the desired branching or indicator setting. |
Description:
This instruction verifies that the privileged instructions and special authorities specified by operand 2 are currently available to the thread.
If operand 1 is not null, all of the privileged instructions and special authorities specified by operand 2 that are currently available to the thread are returned in operand 1.
If operand 3 is null, the authority verification is performed relative to the invocation executing this instruction. If an operand 3 is specified, the authority verification is performed relative to the invocation specified. Specifying an invocation causes the invocations subsequent to it to be bypassed in the authority verification process. This has the influence of excluding the program adopted user profiles for any of these excluded invocations from acting as a source of authority to the authority verification process.
The required privileged instructions and special authorities are specified by the required authority template of operand 2.
If the required authority is available, one of the following occurs:
- Branch form indicated
- Conditional transfer of control to the instruction indicated by the appropriate branch target operand.
- Indicator form specified
- The leftmost byte of each of the indicator operands is assigned the following values:
- Hex F1 - If the result of the test matches the corresponding indicator option
- Hex F0 - If the result of the test does not match the corresponding indicator option
- The leftmost byte of each of the indicator operands is assigned the following values:
The format for the available authority template receiver (operand 1) is as follows: (1 = authorized)
|
The format for the required authority template (operand 2) is as follows: (1 = authorized)
|
The relative invocation operand (operand 3) identifies an invocation relative to the current invocation at which the authority verification is to be performed. The value of the relative invocation operand must be less than or equal to zero. A value of zero identifies the current invocation, -1 identifies the prior invocation, -2, the invocation prior to that, and so on. A value larger than the number of invocations currently on the invocation stack or a positive value results in the signaling of the scalar value invalid (hex 3203) exception.
An immediate value is not allowed for operand 3.
The program adopted and propagated user profiles for the identified invocation and older invocations will be included in the authority verification process. Program adopted user profiles for invocations newer than the identified invocation will not be included in the authority verification process. If the current invocation is specified, its program adopted user profile is included whether or not it is to be propagated.
Damaged user profiles encountered during the authority verification processing result in the signaling of the authority verification terminated due to damaged object (hex 1005) exception
Resultant Conditions
- Authorized - the required authority is available.
- Unauthorized - the required authority is not available.
Authorization Required
- Execute
- Contexts referenced for address resolution
Lock Enforcement
- Materialize
- 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
- 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
- 2C Program Execution
- 2C04 Branch Target Invalid
- 2E Resource Control Limit
- 2E01 User Profile Storage Limit Exceeded
- 32 Scalar Specification
- 3201 Scalar Type Invalid
- 3203 Scalar Value Invalid
- 36 Space Management
- 3601 Space Extension/Truncation
- 38 Template Specification
- 3801 Template Value Invalid
- 44 Protection Violation
- 4401 Object Domain or Hardware Storage Protection Violation
- 4402 Literal Values Cannot Be Changed