Figure 1 illustrates the subroutine SELECT
using the select ASID service to determine which ASIDs have ERROR
and TCBERROR selection criteria conditions. SELECT sets field ADPLPSF1
to contain the indicators for the ERROR and TCBERROR address spaces
(ADPLPSER and ADPLPSTE respectively).
Note: Issue the FREEMAIN macro to release the storage obtained for
the output list if the return code from the select ASID service processing
is not 16. Field ADPLOSSZ provides you with the size of the output
list and field ADPLOSSP gives the subpool number. When the ADPLPSXL
bit is set, use the value in ADPLPS31 (full word) for the FREEMAIN.
Figure 1. Example - Invoking the Select
ASID Service*
* The SELECT subroutine calls the select ASID service to
* process those ASIDs that have ERROR or TCBERROR conditions.
*
SELECT MVI ADPLPSF1,ADPLPSER+ADPLPSTE Set the parameter flags
L R15,ADPLSERV Load address of exit services router
CALL (15),((ABDPLPTR),CODESEL,ADPLPSEL) Invoke service
CH R15,=H'8' Was the select ASID service successful?
BNL EXIT No. End processing
L R1,ADPLPSOL Load address of Select ASID output list
LH R0,ADPLOSSZ-ADPLOSEL(,R1) Length of output list
ICM R0,B'1000',ADPLOSSP Subpool number
FREEMAIN R,LV=(0),A=(1) Free the output list, RC ¬=16
CODESEL DC A(ADPLSSEL) Select ASID service code
ABDPLPTR EQU 11 General register 11
*--------------------------------------------------------------------
* Reserve space for an initialized select ASID service
* parameter list
*--------------------------------------------------------------------
BLSABDPL DSECT=NO,AMDEXIT=NO,AMDOSEL=NO, *
AMDPACC=NO,AMDPFMT=NO,AMDPECT=NO,AMDPSEL=YES
*--------------------------------------------------------------------
* Define the format of the ABDPL addressed by R1 on input
*--------------------------------------------------------------------
BLSABDPL DSECT=YES,AMDEXIT=YES,AMDOSEL=YES, *
AMDPACC=NO,AMDPFMT=NO,AMDPECT=NO,AMDPSEL=NO