TITLE 'IEAVEE2R- EXTERNAL FLIH RECOVERY ROUTINE (II)' 00110002 * /* START OF SPECIFICATIONS **** 00120002 * 00130002 *01* MODULE-NAME = IEAVEE2R 00150002 * 00200002 *02* CSECT-NAME = IEAVEE2R 00250002 * 00300002 *01* DESCRIPTIVE-NAME = EXTERNAL FLIH RECOVERY ROUTINE 2 00350002 * 00400002 *01* COPYRIGHT = NONE 00450002 * 00500002 *01* STATUS = VERSION 1 00550002 * 00600002 * 00650002 *01* FUNCTION = 00700002 * WHEN RECOVERY IS INITIATED FOR THE EXTERNAL FIRST LEVEL 00750002 * INTERRUPT HANDLER (LEVEL 1 OF RECURSION), THE SUPER FRR WILL 00800002 * INDICATE A RETRY TO IEAVEE2R. THIS ROUTINE WILL CLEAR THE 00850002 * APPROPRIATE EXT FLIH INDICATORS, MAKING THE FUNCTION OPERABLE. 00900002 * IT WILL PERCOLATE THE ERROR TO THE PREVIOUS LEVEL OF RECOVERY. 00950002 * 01000002 *02* OPERATION = 01050002 * CLEAR THE EXT FLIH RECURSION BIT 2; 01100002 * IF EMS RECURSION FLAG IS OFF 01200002 * THEN CLEAR EMS PRIMARY FLAG; 01250002 * CLEAR EMS RECURSION FLAG; 01300002 * FLIP THE FRR STACK TO THE EXT FLIH(1) STACK; 01350002 * SET ABEND CODE IN REG 1 FOR SVC 13; 01400002 * EXIT TO IEAVEABD TO PERFORM ABEND; 01450002 * 01500002 *01* NOTES = 01550002 * 01600002 *02* DEPENDENCIES = 01760002 * RTM: 01770002 * RECOVERY IS CONTROLLED BY USE OF THE FRR STACK MECHANISM. 01780002 * 01790002 * IEAVESVR: 01792002 * THE SVC FLIH RECOVERY ROUTINE CONTAINS A COMMON 01794002 * SECTION, STARTING AT THE EXTERNAL LABEL IEAVEABD, 01796002 * WHICH WILL ABEND THE CURRENT TASK, AND PERCOLATE 01798002 * THE ERROR. 01798402 * 01798802 * IPC: 01799202 * FLAGS FOR EMERGENCY SIGNAL MUST BE CLEARED 01799702 * TO MAKE THE FUNCTION OPERABLE. 01799802 * 01799902 *03* CHARACTER-CODE-DEPENDENCIES = NONE 01800002 * 01850002 *02* RESTRICTIONS = NONE 01900002 * 01950002 *02* REGISTER-CONVENTIONS = SEE EQUATE SECTION OF MODULE 02000002 * 02050002 *02* PATCH-LABEL = NONE 02100002 * 02150002 *01* MODULE-TYPE = PROCEDURE 02200002 * 02250002 *02* PROCESSOR = ASSEMBLER 02300002 * 02350002 *02* MODULE-SIZE = 44 BYTES 02400002 * 02450002 *02* ATTRIBUTES = NUCLEUS 02500002 * REUSABLE 02550002 * REENTRANT 02600002 * DISABLED 02650002 * ZERO PROTECT KEY 02700002 * SUPERVISOR MODE 02750002 * 02800002 *01* ENTRY-POINT = IEAVEE2R 02850002 * 02900002 *02* PURPOSE = THIS IS THE ONLY ENTRY TO IEAVEE2R 02950002 * 03000002 *02* LINKAGE = SUPER FRR WILL INDICATE A RETRY TO IEAVEE2R. 03050002 * RTM WILL PASS CONTROL VIA BR 15. 03100002 * 03150002 *02* INPUT = 03200002 * 03250002 *03* ENVIRONMENT = DISABLED 03300002 * SUPERVISOR 03350002 * KEY 0 03400002 * NO LOCKS HELD 03450002 * 03500002 *03* DATA = DATA AREAS IN PSA AND LCCA 03550002 * 03600002 *03* REGISTERS = REG 15 = ENTRY POINT ADDRESS 03650002 * 03700002 *02* OUTPUT = 03750002 * 03800002 *03* DATA = CURRENT FRR STACK = EXT FLIH (1) STACK 03850002 * EXT FLIH RECURSION BIT(2) CLEARED 03900002 * EMS SLIH FLAGS CLEARED; 03950002 * 04000002 *03* REGISTERS = 04050002 * REG 1 = ABEND CODE 04100002 * REG 15= ADDR IEAVEABD 04150002 * 04200002 *02* REGISTERS-SAVED = NONE 04250002 * 04300002 *02* REGISTER-USAGE = REG 1 = ABEND CODE 04350002 * REG 15= IEAVEABD ENTRY POINT ADDRESS 04400002 * 04450002 *02* REGISTERS-RESTORED = ALL AS ON ENTRY EXCEPT REG 1 & 15 04500002 * 04550002 *01* EXIT-NORMAL = TO IEAVEABD WHO ISSUES AN SVC 13 04600002 * 04650002 *02* CONDITIONS = THE CURRENT TASK MUST BE TERMINATED FOR 04700002 * RECOVERY PURPOSES. 04750002 * 04800002 *02* OUTPUT = NONE 04850002 * 04900002 *02* RETURN-CODES = NONE 04950002 * 05000002 *01* EXIT-ERROR = NONE 05050002 * 05100002 *01* EXTERNAL-REFERENCES = 05150002 * 05200002 *02* ROUTINES = 05250002 * IEAVEABD -- (ON EXIT) TO ISSUE AN SVC 13 05257002 * 05264002 * INVSRTRY -- RSM FUNCTIONAL RECOVERY ROUTINE 05271002 * INPUT= 05278002 * DATA= NONE 05285002 * REGISTERS= 05292002 * R10= ENTRY POINT ADDRESS 05299002 * R11= RETURN ADDRESS 05306002 * OUTPUT= 05313002 * DATA= NONE 05320002 * REGISTERS= 05327002 * R15= UNCHANGED 05334002 * 05341002 *02* DATA-AREAS = 05350002 * PSACSTK -- CURRENT FRR STACK POINTER 05400002 * PSAESST1 -- EXT FLIH (1) FRR STACK SAVE POINTER 05450002 * LCCAXRC2 -- EXT FLIH (2) RECURSION BIT 05500002 * PSAIPCES -- EMS SLIH FLAG (PRIMARY) 05600002 * PSAIPCE2 -- EMS SLIH RECURSION FLAG 05650002 * 05750002 *02* CONTROL-BLOCKS = PSA R/W 05800002 * LCCA R/W 05850002 * 05950002 *01* TABLES = NONE 06000002 * 06050002 *01* MACROS = NONE 06100002 * 06150002 *01* SERIALIZATION = DISABLE 06200002 * 06250002 *01* CHANGE-ACTIVITY = Y021104 06300002 * 06350002 *01* MESSAGES = NONE 06400002 * 06450002 *01* ABEND-CODES = X'3FC' 06500002 * 06550002 **** END OF SPECIFICATIONS ***/ 06600002 EJECT 06610002 IEAVEE2R CSECT 06650002 SPACE 2 06660002 */*IEAVEE2R: CHART EXT FLIH (2) FRR */ 06670002 */* HEADER 06680002 */* 06690002 */* 06692002 */* 06694002 */* SECTION 3.1.8.3 06696002 */* EXT FLIH (II) RECOVERY ROUTINE 06698002 */* PAGE # */ 06698402 */*IEAVEE2R: E IEAVEE2R */ 06698802 */* P CLEAR THE EXT FLIH RECURSION BIT(2) */ 06699202 */* D (YES,RECURSON,NO,) EMS RECURSION? */ 06699402 */* P CLEAR EMS PRIMARY FLAG */ 06699502 */*RECURSON: P CLEAR EMS RECURSION FLAG */ 06699602 */* P FLIP THE FRR STACK TO THE EXT FLIH (1) STACK */ 06699702 */* P SET ABEND CODE IN REG 1 FOR SVC 13 */ 06699802 */* P EXIT TO IEAVEABD TO PERFORM ABEND */ 06699902 */* R IEAVEABD */ 06700002 */* FOOTING 06716602 */* 06726602 */* */ 06728602 */*IEAVEE2R: END EXTFLIH (2) FRR */ 06730602 EJECT 06732602 *********************************************************************** 06733002 * * 06733102 * EQUATES * 06733202 * * 06738802 *********************************************************************** 06740802 CXFF EQU X'FF' CONSTANT VALUE = X'FF' 06744402 EXTCODE EQU X'3FC' EXTERNAL FLIH ABEND CODE 06750002 CODEREG EQU 1 REG 1 = ABEND CODE 06800002 R10 EQU 10 GENERAL REGISTER 10 06810002 R11 EQU 11 GENERAL REGISTER 11 06820002 R15 EQU 15 GENERAL REGISTER 15 06850002 CCABASE EQU 1 BASE FOR LCCA 06900002 *********************************************************************** 06910002 * * 06920002 * IEAVEE2R MAINLINE * 06930002 * * 06940002 *********************************************************************** 06942002 USING PSA,0 06950002 USING LCCA,CCABASE 07000002 USING *,R15 REG 15 = ENTRY POINT ADDRESS 07050002 L CCABASE,PSALCCAV SET UP BASE TO LCCA 07100002 NI LCCAIHR1,CXFF-LCCAXRC2 07150002 * CLEAR RECURSION 2 BIT 07200002 TM PSASUP2,PSAIPCE2 IS THIS A EMS RECURSION? 07400002 BO RECURSON IF SO, TURN OFF RECURSION FLAG 07450002 NI PSASUP2,CXFF-PSAIPCES 07500002 * CLEAR EMS PRIMARY FLAG 07550002 RECURSON NI PSASUP2,CXFF-PSAIPCE2 07600002 * EMS RECURSION FLAG 07650002 MVC PSACSTK,PSAESTK1 CURRENT FRR STACK = EXT(1) FLIH STACK 07700002 L R10,AINVSR GET THE ADDRESS OF RSM FRR 07710002 BALR R11,R10 GO TO RSM FRR FOR CLEANUP 07720002 LA CODEREG,EXTCODE PUT EXT FLIH CODE IN REG 1 FOR ABEND 07750002 L R15,ADABEND BRANCH TO ABEND ROUTINE LOCATED IN 07800002 BR R15 IEAVESVR (SVC FLIH FRR) 07850002 *********************************************************************** 07860002 * * 07870002 * CONSTANTS & STORAGE * 07880002 * * 07890002 *********************************************************************** 07892002 EXTRN IEAVEABD 07896002 ADABEND DC V(IEAVEABD) ADDRESS COMMON ABEND ROUTINE 07900002 AINVSR DC V(INVSRTRY) ADDRESS RSM FUNCTIONAL RECOVERY RTN 07905002 TITLE 'IEAVEE2R- PSA MAPPING' 07910002 IHAPSA 07950002 TITLE 'IEAVEE2R- LCCA DSECT MAPPING' 07960002 IHALCCA 08000002 END 08100002