Use this system macro to validate or reject authorization of E-type
programs requesting to run a restricted use macro. Macro service
routines identified as restricted use it to enforce the restriction.
The program allocation table (PAT) entry of the requesting program is checked
to determine whether the requesting program is authorized to process a class
of restricted use macros.
Format
Notes:
- kywrd
- label
- A symbolic name can be assigned to the macro statement.
- CHECK
- This required parameter specifies the class authorization to be
verified.
There are three possible operands:
- (kywrd)
- Specify one of the following:
- KEY0
- The KEY0 option tests for storage protect key 0 authorization.
This option is listed as Key0 in the authorization box.
- MONTC
- The MONTC option tests for supervisor state authorization.
This option is listed as System in the authorization box.
- RESTR
- The RESTR option tests for other restricted macro use
authorization.
This option is listed as Restricted in the authorization box.
- CMB
- The CMB option tests for authorization to obtain common storage
blocks.
This option is listed as Common Storage in the authorization box.
- SVCTBL
- The SVCTBL option tests the SVC table entry for the macro against the PAT
entry for the program.
- FLKTBL
- The FLKTBL option tests the fast link table entry for the macro against
the PAT entry for the program.
- REG1=Rx
- A work register must be specified. R0 cannot be used.
- REG2=Ry
- A work register must be specified. R0 cannot be used.
- IFAUTH=symbol1
- If this parameter is coded, and authorization is validated, control will
be passed to the location defined by symbol1.
- NOTAUTH=symbol2
- If this parameter is coded, and authorization is rejected, control will be
passed to the location defined by symbol2.
- Note:
- Either IFAUTH or NOTAUTH must be coded. Both can be coded.
Entry Requirements
- R0 cannot be specified as a work register.
- R9 must contain the address of the requesting ECB.
Return Conditions
- Control is returned to the location specified by the appropriate
authorization check condition or to the next sequential instruction
(NSI).
- The register specified by the REG parameter has been used as a work
register. Its contents are unpredictable.
Programming Considerations
- This macro can be run on any I-stream.
- This macro is used by the macro decoder and by restricted use macro
service routines to validate a requestor's (E-type program) authorization
to execute a macro.
- This macro generates inline code.
- Authorization is validated through ISV0SV field ISV0AUTHZ.
- If coding a SNAPC macro to enforce an authorization failure, be sure to
include the SVC Old PSW (if an SVC), by using the SNAPC LIST parameter and the
registers, by using the SNAPC REGS=YES parameter. This will provide
consistency in $CKMAC usage.
- Some macros have authorizations required to use particular parameters even
though the macros themselves do not require authorization by the CKMAC
parameter. The restricted parameters are documented in their respective
macro descriptions.
Examples
None.