* % GOTO PPLPLS; /* GO TO PLS VERSION */ 00060002 MACRO 00070021 IECDPPL &DSECT=YES 00100002 AIF ('&DSECT' EQ 'NO').PPL1 00102002 PPL DSECT 00110021 AGO .PPL2 00112002 .PPL1 ANOP 00114002 PPL DS 0D 00116002 .PPL2 ANOP 00118002 SPACE 1 00120021 *************************************************************** 00130021 * * 00140021 * FOLLOWING IS THE PURGE PARAMETER LIST FORMAT * 00142021 * * 00144021 *************************************************************** 00146021 SPACE 1 00148021 PPLDSID DS 0F SAME COMMENTS AS PPLDSIDA 00148402 PPLOPT1 DS XL1 OPTION BYTE ONE 00150002 PPLDS EQU X'80' IF DSID PURGE REQUESTED (BIT 00200021 * 6), PURGE A SINGLE DSID (SEE 00250021 * PPLDSID). IF ZERO, DSID 00300002 * LIST PURGE. 00310002 PPLPOST EQU X'40' ECBS ASSOCIATED WITH THE I/O 00350021 * REQUESTS PURGED SHOULD BE 00400021 * POSTED WITH X'48' 00450021 PPLHIO EQU X'20' HALT THE I/O REQUESTS AND DO 00500021 * NOT BUILD A PIRL. 00550021 PPLREL EQU X'10' PURGE ONLY THE I/O REQUESTS 00600021 * MARKED RELATED AND ASSOC WITH 00650021 * THE ARGUMENT 00700021 * EQU X'08' RESERVED AND SHOULD BE ZERO 00750021 PPLRB EQU X'04' DO NOT PURGE THE RB CHAIN FOR 00800021 * ASYNCHRONOUSLY SCHEDULED 00850021 * ROUTINES 00900021 PPLTASK EQU X'02' IF ASID PURGE IS NOT 00950002 * SPECIFIED PURGE A SINGLE TCB 01000002 PPLEXR EQU X'01' OPTION BYTE 2 IS PRESENT AND 01050021 * CONTAINS VALID INFORMATION 01100021 SPACE 1 01150021 PPLDSIDA DS AL3 3 BYTE POINTER TO DSID ARG. 01200002 * IT MUST POINT TO A CONTROL 01250021 * BLOCK THAT HAS THE FOLLOWING 01300021 * FIELDS: 01350021 * MINUS 2 - TWO BYTE DSID VALID- 01400021 * ITY INDEX 01450021 * PLUS 5 - THREE BYTE ADDRESS 01500021 * OF NEXT DSID OR ZERO 01550021 PPLTCB DS 0F ADDRESS OF TCB TO BE USED 01560002 * TO FIND THE I/O REQUESTS IF 01570002 * NO SUPPLIED, THE CURRENT TCB 01580002 * ADDRESS WILL BE USED. 01590002 PPLCC DS XL1 PURGE COMPLETION CODE 01600002 * '7F' SUCCESSFUL COMPLETION 01650021 * '40' UNSUCCESSFUL COMPLETION 01700021 * SEE REG 15 FOR DETAILS 01750021 * NOTE: ALWAYS '7F' IF PPLEXR=0. 01760002 PPLTCBA DS AL3 SEE DESCRIPTION FOR PPLTCB 01800002 * USED TO FIND THE I/O REQUESTS 01850021 * IF NOT SUPPLIED, THE CURRENT 01900021 * TCB ADDRESS WILL BE USED. 01950021 PPLPIRL DS 0F 3 BYTE ADDRESS OF THE ANCHOR 02050002 * FROM WHICH THE PURGED I/O RE- 02100021 * QUEST LIST WILL BE CHAINED. 02150021 PPLDVRID DS XL1 DRIVER ID -- REQUIRED DCRR 21082 02160002 * FOR DSID PURGE REQUESTS DCRR 21082 02162002 * DEFAULT VALUE OF X'00' DCRR 21082 02164002 * IMPLIES EXCP IS OWNER DCRR 21082 02166002 PPLPIRLA DS AL3 SEE DESCRIPTION FOR PPLPIRL 02170002 PPLOPT2 DS XL1 OPTION BYTE 2. OPTIONALLY 02200021 * PRESENT DEPENDING ON BIT 7 OF 02250021 * OPTION BYTE 1. 02300021 PPLCAN EQU X'80' CANCEL COMMAND REQUEST @ZA05933 02310003 * BYPASS SMGR CALL @ZA05933 02320003 PPLMEM EQU X'20' ASID PURGE SPECIFIED. THIS 02350002 * OPTION MAY BE SPECIFIED ONLY 02400021 * BY A REQUESTOR THAT IS IN 02450021 * SUPERVISOR STATE. 02500021 PPLVC EQU X'10' BYPASS VALIDITY CHECK 02510002 * 0 - BYPASS VALIDITY CHECK 02520002 * - SUPERVISOR STATE ONLY 02522002 * 1 - VALIDITY CHECK 02530002 PPLOTCB EQU X'08' PURGE ALL REQUESTS SO THAT 02550021 * WHEN RESTORED THEY CAN BE 02600021 * ASSOCIATED WITH THE TCB THAT 02650021 * ORIGINATED THEM. 02700021 PPLTSKM EQU X'04' PURGE CALLED BY TASK TERMIN- 02710002 * ATION. IF QUIESCE OPTION AND 02720002 * ANY I/O REQUESTS ENCOUNTERED, 02730002 * PURGE WILL NOT ISSUE WAIT. 02740002 PPLBSS EQU X'02' BYPASS STATUS START @ZA06065 02742003 * SRB - VALID ONLY @ZA06065 02744003 * FOR RCT CALL FOR @ZA06065 02746003 * MEMORY SWAP @ZA06065 02748003 PPLUCB EQU X'01' PURGE DSID BY UCB ONLY @ZA52611 02748400 * WHEN THIS BIT IS ON ONLY @ZA52611 02748800 * REQUESTS FOR SPECIFIED UCB @ZA52611 02749200 * WILL BE PURGED. @ZA52611 02749600 DS XL1 RESERVED AND SHOULD BE ZERO 02750021 PPLASID DS 0H ASID OF ADDRESS SPACE TO WHICH 02800000 * I/O REQUESTS ARE ASSOCIATED. 02850002 PPLOFSET DS H OFFSET OF UCB WITHIN THE DEB 02875000 * FOR PURGE BY UCB ONLY. @ZA52611 02887500 MEND 02900021 *%PPLPLS: ; 02950021 * 03000021 * /************************************************************/ 03010021 * /* */ 03020021 * /* FOLLOWING IS THE PURGE PARAMETER LIST FORMAT */ 03050021 * /* */ 03100021 * /************************************************************/ 03150021 * 03200021 * DECLARE 03202021 * 1 PPL BDY(WORD) BASED(PPLPTR), 03210021 * 2 PPLDSID PTR(31), /* ADDR OF DSID ARGUMENT. 03250002 * IT MUST POINT TO A CONTROL 03300000 * BLOCK THAT HAS THE 03350000 * FOLLOWING FIELDS: 03400002 * MINUS 2 - TWO BYTE DSID 03450002 * VALIDITY CHACK INDEX 03500002 * PLUS 5 - THREE BYTE ADDR 03550002 * OF NEXT DSID OR ZEROS */ 03600002 * 3 PPLOPT1 BIT(8), /* OPTION BYTE ONE */ 03650021 * 4 PPLDS BIT(1), /* IF DSID PURGE REQUESTED 03700002 * (BIT 6) PURGE A SINGLE 03750002 * DSID (SEE PPLDSID. */ 03800002 * 4 PPLPOST BIT(1), /* ECBS ASSOC WITH THE I/O 03850002 * REQUESTS PURGED SHOULD 03900002 * BE POSTED WITH X'48' */ 03950002 * 4 PPLHIO BIT(1), /* HALT THE I/O REQUESTS 04000002 * AND DO NOT BUILD A PIRL */ 04050002 * 4 PPLREL BIT(1), /* PURGE ONLY THE I/O REQ. 04150002 * MARKED RELATED AND ASSOC 04200002 * WITH THE ARGUMENT */ 04250002 * 4 * BIT(1), /* RESERVED AND SHOULD BE 0*/ 04300021 * 4 PPLRB BIT(1), /* DONT PURGE THE RB CHAIN 04350002 * FOR ASYNCHRONOUSLY SCHED 04400002 * ROUTINES */ 04450002 * 4 PPLTASK BIT(1), /* IF ASID PURGE IS NOT 04500002 * SPECIFIED, PURGE SINGLE 04550002 * TCB. */ 04560002 * 4 PPLEXR BIT(1), /* OPTION BYTE 2 IS PRESENT 04600002 * AND CONTAINS VALID INFO */ 04650002 * 04700021 * 3 PPLDSIDA PTR(24), /* SAME AS PPLDSID COMMENT */ 04750002 * 04800021 * 2 PPLTCB PTR(31), /* 3 BYTE ADDR OF TCB TO BE 04850002 * USED TO FIND THE I/O REQ 04900002 * IF NOT SPECIFIED THE 04950002 * CURRENT TCB ADDR IS USED*/ 05000002 * 3 PPLCC CHAR(1), /* PURGE COMPLETION CODE 05050002 * '7F' SUCCESSFUL COMPLTN 05100002 * '40' UNSUCCESSFUL - SEE 05150002 * REG 15 FOR DETAILS */ 05200002 * 3 PPLTCBA PTR(24), /* SAME AS PPLTCB COMMENT */ 05250002 * 2 PPLPIRL PTR(31), /* 3 BYTE ADDR OF ANCHOR 05300002 * FROM WHICH PURGED I/O 05350002 * REQUEST LIST IS CHAINED */ 05400002 * 3 PPLDVRID CHAR(1), /* DRIVER ID -- REQUIRED 05410002 * FOR DSID PURGE REQUESTS 05412002 * DEFAULT VALUE OF X'00' 05414002 * IMPLIES EXCP IS OWNER 05416002 * -- DCRR 21082 */ 05418402 * 3 PPLPIRLA PTR(24), /* SEE PPLPIRL COMMENT */ 05420002 * 2 PPLOPT2 BIT(8), /* OPTION BYTE 2. OPTIONALLY 05450000 * PRESENT DEPENDING 05500000 * ON BIT 7 OF OPTION BYTE 1*/ 05550000 * 3 PPLCAN BIT(1), /* CANCEL COMMAND REQUEST @ZA05360*/ 05600003 * 3 * BIT(1), /* BYPASS SMGR CALL @ZA05360*/ 05610003 * 3 PPLMEM BIT(1), /* ASID PURGE SPECIFIED. 05650002 * THIS OPTION MAY BE SPECIFIED 05700000 * ONLY BY A REQSTR 05750000 * THAT IS IN SUPRVSR STATE*/ 05800002 * 3 PPLVC BIT(1), /* BYPASS VALIDIY CHECK 05850002 * 0 - BYPASS VALIDITY CHCK 05860002 * 1 - VALIDITY CHECK */ 05870002 * 3 PPLOTCB BIT(1), /* PURGE ALL REQUESTS SO 05900002 * THAT WHEN RESTORED THEY 05950002 * CAN BE ASSOC WITH THE 06000002 * TCB THAT ORIGINATED THEM*/ 06050002 * 3 PPLTSKM BIT(1), /* PURGE CALLED BY TASK 06060000 * TERMINATION. IF QUIESCE 06070000 * OPTION AND I/O REQUESTS 06080000 * ENCOUNTERED, PURGE WILL 06090000 * NOT WAIT AND WILL PASS 06092002 * RETURN CODE X'10' BACK 06094002 * IN REG 15 */ 06096002 * 3 PPLBSS BIT(1), /* BYPASS STATUS START 06096603 * SRB - VALID ONLY FOR 06097203 * RCT CALL FOR 06097803 * MEMORY SWAP @ZA06065*/ 06098403 * 3 PPLUCB BIT(1), /* PURGE DSID BY UCB ONLY. 06111300 * WHEN ON REQUESTS FOR SPECIFIED 06124200 * UCB WILL BE PURGED. @ZA52611*/ 06137100 * 06150002 * 2 * CHAR(1), /* RESERVED AND SHOULD BE 0*/ 06200021 * 2 PPLASID CHAR(2) BDY(HWORD), /* ASID OF MEMORY TO WHICH 06224000 * I/O REQUESTS ARE ASSOCIATED 06248000 * @ZA52611*/ 06272000 * 3 PPLOFSET CHAR(2), /* OFFSET WITHIN THE DEB TO 06301000 * ADDRESS OF THE UCB FOR 06330000 * PURGE BY UCB ONLY. @ZA52611*/ 06340000 * 06350021 * 2 PPLEND CHAR(0); /* END OF PPL */ 06400021