This example shows a scenario of scheduling an SRB using IEAMSCHD
and purging the SRB using PURGEDQ. The example schedules an SRB routine:
- To an enclave (identified by ENCLAVE_TOKEN) at the lowest priority
in the enclave.
- To receive control in the current home address space with an FRR
established and holding the LOCAL lock of the current home address
space.
- To run with PSW key 2 in the current home address space
- To have a resource manager termination routine whose entry point
address is in RMTR_ADDR.
The scheduling routine's current task recovery is to receive control
should the SRB routine's recovery percolate. The SRB routine should
be purged if the current task terminates. The ENCLAVE_TOKEN and PURGE_STOKEN
were previously initialized.
*
SCHED_SRB_RTN EQU *
USING PSA,0 Base Prefixed Save Area
*
IEAMSCHD EPADDR=EP_ADDR,FRRADDR=FRR_ADDR,KEYVALUE=
PSW_KEY_2,PRIORITY=ENCLAVE,ENCLAVETOKEN=ENCLAVE_TOKEN,
MINORPRIORITY=MINOR_PRIORITY,RMTRADDR=RMTR_ADDR,
PURGESTOKEN=PURGE_STOKEN,PTCBADDR=PSATOLD,LLOCK=YES,
ENV=HOME
*
.
.
.
ENCLAVE_TOKEN DS D Enclave Token returned by IWMECREA
PURGE_STOKEN DS D Purge-STOKEN
EP_ADDR DC A(SRB_ROUTINE) Address of Entry Point for SRB
FRR_ADDR DC A(FRR_ROUTINE) Address of FRR Routine
RMTR_ADDR DC A(RMTR_ROUTINE) Address of RMTR Entry Point
MINOR_PRIORITY DC X'00' Lowest Priority in Enclave
PSW_KEY_2 DC X'20' PSW Key 2