TITLE 'IEAVESVR- SVC FLIH RECOVERY ROUTINE' 00050002 * /* START OF SPECIFICATIONS **** 00080002 * 00110002 *01* MODULE-NAME = IEAVESVR 00150002 * 00200002 *02* CSECT-NAME = IEAVESVR 00250002 * 00300002 *01* DESCRIPTIVE-NAME = SVC FLIH RECOVERY ROUTINE 00350002 * 00400002 *01* COPYRIGHT = NONE 00450002 * 00500002 *01* STATUS = VERSION 1 00550002 * 00600002 *01* FUNCTION = WHEN RECOVERY IS INITIATED FOR THE SVC FIRST LEVEL 00650002 * INTERRUPT HANDLER, THE SUPER FRR WILL INDICATE A 00700002 * RETRY TO IEAVESVR. THIS ROUTINE WILL CLEAR THE SVC 00750002 * FLIH RECURSION INDICATOR, MAKING THE FUNCTION 00800002 * OPERABLE. IT WILL ALLOW PERCOLATION TO THE 00850002 * PREVIOUS LEVEL OF RECOVERY. 00900002 * 00950002 * THE OTHER FLIH RECOVERY ROUTINES WILL ALL ENTER 00960002 * THIS MODULE AT THE EXTERNAL LABEL IEAVEABD TO 00962002 * PERFORM THE ABEND IN ORDER TO PERCOLATE THE ERROR. 00970002 *02* OPERATION = 01000002 * 01050002 * IEAVESVR ENTRY: 01100002 * 01150002 * CLEAR THE SVC FLIH RECURSION INDICATOR; 01200002 * FLIP THE FRR STACK TO THE NORMAL STACK; 01250002 * IF TYPE 6 SVC, RESET THE TYPE 6 FLAG AND @ZA15739 01270040 * ISSUE ABEND WITH THE COMP. CODE SAVED BY @ZA15739 01300040 * IEAVESPR. @ZA15739 01310040 * IF NOT A TYPE 6 SVC, ISSUE ABEND WITH COMP. @ZA15739 01320040 * CODE 1FC. @ZA15739 01330040 * IEAVEABD: ABEND THE CURRENT TASK; 01350002 * 01450002 *01* NOTES = 01500002 * 01550002 *02* DEPENDENCIES = 01600002 * RTM: RECOVERY IS CONTROLLED BY USE OF THE FRR 01610002 * STACK MECHANISM. 01650002 * 01700002 *03* CHARACTER-CODE-DEPENDENCIES = NONE 01750002 * 01800002 *02* RESTRICTIONS = NONE 01850002 * 01900002 *02* REGISTER-CONVENTIONS = SEE EQUATE SECTION OF MODULE 01950002 * 02100002 *02* PATCH-LABEL = NONE 02150002 * 02200002 *01* MODULE-TYPE = PROCEDURE 02250002 * 02300002 *02* PROCESSOR = ASSEMBLER 02350002 * 02400002 *02* MODULE-SIZE = 50 BYTES @Z40FPYK 02450040 * 02500002 *02* ATTRIBUTES = NUCLEUS 02550002 * REUSABLE 02600002 * REENTRANT 02650002 * DISABLED 02700002 * ZERO PROTECT KEY 02750002 * SUPERVISOR MODE 02800002 * 02850002 *01* ENTRY-POINT = IEAVESVR 02900002 * 02950002 *02* PURPOSE = THIS ENTRY PERFORMS THE SVC FLIH RECOVERY 03000002 * 03050002 *02* LINKAGE = SUPER FRR WILL INDICATE A RETRY TO IEAVESVR 03100002 * RTM WILL PASS CONTROL VIA BR 15. 03150002 * 03200002 *02* INPUT = 03250002 * 03300002 *02* ENVIRONMENT = DISABLED 03350002 * SUPERVISOR 03400002 * KEY 0 03450002 * NO LOCKS HELD 03500002 * 03550002 *02* DATA = DATA AREAS IN PSA 03600002 * 03650002 *02* REGISTERS = REG 15 = ENTRY POINT ADDRESS 03700002 * 03750002 *02* OUTPUT = 03800002 * 03850002 *02* DATA = CURRENT FRR STACK = NORMAL 03900002 * SVC FLIH RECURSION BIT CLEARED 03950002 * 04000002 *02* REGISTERS = 04050002 * REG 0 DESTROYED IN ABEND EXPANSION 04060002 * REG 1 = ABEND CODE 04100002 * ALL OTHERS AS ENTERED 04150002 * 04200002 *01* ENTRY-POINT = IEAVEABD 04210002 * 04220002 *02* PURPOSE = PERFORM THE ABEND TO CONTINUE WITH PERCOLATION 04230002 * 04240002 *02* LINKAGE = CALLER RESOLVES V-CON AND BR 15. 04242002 * 04246002 *02* INPUT = 04248002 * 04248402 *02* ENVIRONMENT = DISABLED 04248802 * SUPERVISOR 04249202 * KEY 0 04249602 * NO LOCKS HELD 04249702 * 04249802 *02* DATA = NONE 04249902 * 04266602 *02* REGISTERS = REG 15 = ENTRY POINT ADDRESS 04276602 * 04278602 *02* OUTPUT = 04280602 * 04282602 *02* DATA = NONE 04283002 * 04283202 *02* REGISTERS = REG 1 = ABEND CODE 04288802 * 04293202 *02* REGISTERS-SAVED = NONE 04294402 * 04300002 *02* REGISTER-USAGE = REG 0 = DESTROYED 04350002 * REG 1 = ABEND CODE 04360002 * 04400002 *02* REGISTERS-RESTORED = ALL AS ON ENTRY EXCEPT REG 0 & 1 04450002 * 04500002 *01* EXIT-NORMAL = VIA SVC 13 04550002 * 04600002 *02* CONDITIONS = THE CURRENT TASK IS TO BE TERMINATED FOR 04650002 * RECOVERY PURPOSES. 04700002 * 04750002 *02* OUTPUT = NONE 04800002 * 04850002 *02* RETURN-CODES = NONE 04900002 * 04950002 *01* EXIT-ERROR = NONE 05000002 * 05050002 *01* EXTERNAL-REFERENCES = 05100002 * 05150002 *02* ROUTINES = ABEND (1),DUMP,,SYSTEM 05200002 * 05250002 *02* DATA-AREAS = 05300002 * PSANSTK -- NORMAL FRR STACK POINTER 05350002 * PSACSTK -- CURRENT FRR STACK POINTER 05400002 * PSASVC -- SVC FLIH RECURSION BIT 05450002 * PSATYPEL -- TYPE 6 SVC @Z40FPYK 05470040 * 05500002 *02* CONTROL-BLOCKS = PSA R/W 05550002 * 05600002 *01* TABLES = NONE 05650002 * 05700002 *01* MACROS = ABEND -- EXPANDS IN-LINE CODE TO ISSUE SVC 13 05750002 * 05800002 *01* CHANGE-ACTIVITY = Y021104 Z40FPYK @Z40FPYK 05850040 * 05900002 *01* SERIALIZATION = DISABLE 05950002 * 06000002 *01* MESSAGES = NONE 06050002 * 06100002 *01* ABEND-CODES = X'1FC' 06150002 * 06200002 **** END OF SPECIFICATIONS ***/ 06250002 EJECT 06260002 IEAVESVR CSECT 06300002 SPACE 2 06310002 */*IEAVESVR: CHART SVC FLIH FRR */ 06320002 */* HEADER 06330002 */* 06340002 */* 06342002 */* 06344002 */* SECTION 3.1.8.3 06346002 */* SVC FLIH RECOVERY ROUTINE 06348002 */* PAGE # */ 06348402 */*IEAVESVR: E IEAVESVR */ 06348802 */* P CLEAR THE SVC FLIH RECURSION INDICATOR */ 06348902 */* P FLIP THE FRR STACK TO THE NORMAL STACK */ 06349002 */* P SET ABEND CODE IN REG 1 FOR SVC 13 */ 06349240 */* D (YES,,NO,IEAVEABD) TYPE 6 SVC FAILED ? */ @Z40FPYK 06349840 */* P RESET TYPE 6 INDICATOR */ @Z40FPYK 06350040 */* P SET UP TYPE 6 ABEND CODE */ @Z40FPYK 06350240 */*IEAVEABD: E IEAVEABD */ 06351602 */* P NOTE: ALL OTHER FLIH FRRS ENTER HERE TO PERFORM ABEND */ 06353602 */* R ABEND */ 06354002 */* FOOTING 06357602 */* 06359602 */* */ 06361602 */*IEAVESVR: END SVCFLIH FRR */ 06362402 SPACE 2 06364102 *********************************************************************** 06365302 * * 06368902 * EQUATES * 06372502 * * 06376102 *********************************************************************** 06379702 SVCCODE EQU X'1FC' SVC FLIH ABEND CODE 06383302 CODE4 EQU 4 ABEND REASON CODE 4 @Z40FPYK 06391340 CODEREG EQU 1 GENERAL REGISTER 1 06400002 BASEREG EQU 15 GENERAL REGISTER 15 @Z40FPYK 06420040 R0 EQU 0 @ZA15739 06430040 R1 EQU 1 @ZA15739 06460040 R15 EQU 15 @ZA15739 06470040 ABENDSVC EQU 13 @ZA15739 06480040 CXFF EQU X'FF' CONSTANT = X'FF' 06500002 EJECT @Z40FPYK 06507040 *********************************************************************** 06510002 * * 06520002 * IEAVESVR MAINLINE * 06530002 * * 06540002 *********************************************************************** 06542002 USING PSA,0 06550002 USING *,BASEREG @Z40FPYK 06570040 NI PSASUP1,CXFF-PSASVC 06600002 * CLEAR SVC FLIH RECURSION BIT 06650002 MVC PSACSTK,PSANSTK MAKE CURRENT FRR STACK = NORMAL 06700002 TM PSASUP1,PSATYPE6 TYPE 6 SVC FAILURE ? @Z40FPYK 06701240 BNO COMMON NO, ABEND WITH REASON CODE 0 @Z40FPYK 06701840 SPACE 2 06702040 * PROCESSING FOR ABEND WHICH WAS ISSUED BY A TYPE 6 SVC @ZA15739 06702240 SPACE 06702440 NI PSASUP1,CXFF-PSATYPE6 RESET TYPE 6 CODE @Z40FPYK 06703640 * IEAVESPR HAD SET UP TO RETRY IN THIS ROUTINE WITH @ZA15739 06703740 * REGISTER 1 SET UP FOR SVC 13 WITH THE CONTENTS OF @ZA15739 06703840 * SDWAABCC AND REG 0 SET UP WITH THE REASON CODE FROM @ZA15739 06703940 * REG 15, IN CASE THE ABEND WAS ISSUED BY A TYPE 6 SVC. @ZA15739 06704040 * IF IT WAS A TYPE 6 SVC ROUTINE WHICH ABENDED, COMP. @ZA15739 06704140 * CODE 1FC WOULD NOT BE APPROPRIATE, BECAUSE 1FC @ZA15739 06704240 * INDICATES IT WAS THE FLIH WHICH ABENDED. @ZA15739 06704340 * THE BIT FOR DUMP OPTIONS IS TURNED OFF IN CASE DUMP @ZA15739 06704440 * OPTIONS WERE SPECIFIED ON THE ABEND. IT IS NOT @ZA15739 06704740 * PRACTICAL TO SAVE DUMP OPTIONS OR LIKELY THAT THEY @ZA15739 06704840 * WERE SPECIFIED ON THE ABEND. @ZA15739 06704940 N R1,NODMPOPT @ZA15739 06705040 LR R15,R0 SET THE REASON CODE USED THE @ZA15739 06705140 * FIRST TIME THE ABEND WAS @ZA15739 06705240 * ISSUED 06705340 SVC ABENDSVC @ZA15739 06705440 SPACE 2 06705540 * ABEND WITH COMP. CODE 1FC 06705640 SPACE 06705740 COMMON DS 0H 06706340 SLR R15,R15 PUT REASON CODE IN REG 15 @ZA15739 06706440 * NOTE: BASE REGISTER 15 IS DESTROYED AFTER THE ABEND @Z40FPYK 06706540 * REASON CODE IS SET. THE CODE FOLLOWING THIS @Z40FPYK 06706640 * INSTRUCTION AND BEFORE THE ABEND SVC SHOULD NOT @Z40FPYK 06707240 * REQUIRE ADDRESSABLITIY IN THIS CSECT. @Z40FPYK 06707840 DROP BASEREG @ZA15739 06708140 LA CODEREG,SVCCODE PUT SVC FLIH ABEND CODE IN REG 1 06710040 SPACE 2 @Z40FPYK 06730040 *********************************************************************** 06760002 * * 06770002 * IEAVEABD -- ABEND ROUTINE * 06780002 * * 06790002 *********************************************************************** 06792002 ENTRY IEAVEABD 06800002 IEAVEABD DS 0H *****COMMON ABEND ROUTINE***** 06850002 * USED BY ALL FLIH RECOVERY ROUTINES TO 06860002 * ISSUE AN SVC 13 AND PERCOLATE 06870002 ABEND (1),DUMP,,SYSTEM ABEND THE CURRENT TASK 06900002 SPACE 3 06903040 NODMPOPT DC X'DFFFFFFF' @ZA15739 06906040 TITLE 'IEAVESVR- PSA MAPPING' 06910002 IHAPSA 06950002 END 07000002