TITLE 'IEAVEE1R- EXTERNAL FLIH RECOVERY ROUTINE (I)' 00112002 * /* START OF SPECIFICATIONS **** 00120002 * 00130002 *01* MODULE-NAME = IEAVEE1R 00150002 * 00200002 *02* CSECT-NAME = IEAVEE1R 00250002 * 00300002 *01* DESCRIPTIVE-NAME = EXTERNAL FLIH RECOVERY ROUTINE 1 00350002 * 00400002 *01* COPYRIGHT = NONE 00450002 * 00500002 *01* STATUS = VERSION 1 00550002 * 00600002 *01* FUNCTION = 00650002 * WHEN RECOVERY IS INITIATED FOR THE EXTERNAL FIRST LEVEL 00700002 * INTERRUPT HANDLER, THE SUPER FRR WILL INDICATE A RETRY 00750002 * TO IEAVEE1R. THIS ROUTINE WILL CLEAN UP THE EXT FLIH 00800002 * RESOURCES (NON-RECURSIVE), AND ALLOW PERCOLATION 00850002 * TO THE NEXT LEVEL OF RECOVERY. 00900002 * 00950002 *02* OPERATION = 01000002 * CLEAR THE EXT FLIH RECURSION BIT 1; 01050002 * CLEAR THE IPC SLIH FLAGS (EMS & EXT CALL); 01100002 * FLIP THE FRR STACK TO THE PREVIOUS CURRENT STACK; 01200002 * SET COMPLETION CODE IN REG 1 FOR ABEND; 01250002 * EXIT TO IEAVEABD TO PERFORM ABEND; 01300002 * 01350002 *01* NOTES = 01400002 * 01450002 *02* DEPENDENCIES = 01500002 * RTM: 01550002 * RECOVERY IS CONTROLLED BY USE OF THE FRR STACK MECHANISM. 01600002 * 01602002 * IEAVESVR: 01610002 * THE SVC FLIH RECOVERY ROUTINE CONTAINS A COMMON 01620002 * SECTION, STARTING AT THE EXTERNAL LABEL IEAVEABD, 01630002 * WHICH WILL ABEND THE CURRENT TASK, AND PERCOLATE 01640002 * THE ERROR. 01642002 * 01644002 * IPC: 01646002 * THE FLAGS FOR THE TWO IPC FUNCTIONS 01648002 * EXTERNAL CALL AND EMERGENCY SIGNAL MUST BE CLEARED 01648402 * TO MAKE THE FUNCTION OPERABLE. 01648802 * 01649202 *03* CHARACTER-CODE-DEPENDENCIES = NONE 01650002 * 01700002 *02* RESTRICTIONS = NONE 01750002 * 01800002 *02* REGISTER-CONVENTIONS = SEE EQUATE SECTION OF MODULE 01850002 * 01900002 *02* PATCH-LABEL = NONE 01950002 * 02000002 *01* MODULE-TYPE = PROCEDURE 02050002 * 02100002 *02* PROCESSOR = ASSEMBLER 02150002 * 02200002 *02* MODULE-SIZE = 36 BYTES 02250002 * 02300002 *02* ATTRIBUTES = NUCLEUS 02350002 * REUSABLE 02400002 * REENTRANT 02450002 * DISABLED 02500002 * ZERO PROTECT KEY 02550002 * SUPERVISOR MODE 02600002 * 02650002 *01* ENTRY-POINT = IEAVEE1R 02700002 * 02750002 *02* PURPOSE = THIS IS THE ONLY ENTRY TO IEAVEE1R 02800002 * 02850002 *02* LINKAGE = SUPER FRR WILL INDICATE A RETRY TO IEAVEE1R. 02900002 * RTM WILL PASS CONTROL VIA BR 15. 02950002 * 03000002 *02* INPUT = 03050002 * 03100002 *03* ENVIRONMENT = DISABLED 03150002 * SUPERVISOR 03200002 * KEY 0 03250002 * NO LOCKS HELD 03300002 * 03350002 *03* DATA = DATA AREAS IN PSA AND LCCA 03400002 * 03450002 *03* REGISTERS = REG 15 = ENTRY POINT ADDRESS 03500002 * 03550002 *02* OUTPUT = 03600002 * 03650002 *03* DATA = CURRENT FRR STACK = PREVIOUS CURRENT 03700002 * EXT FLIH RECURSION BIT (1) CLEARED 03750002 * IPC SLIH FLAGS CLEARED 03800002 * 03850002 *03* REGISTERS = 03900002 * REG 1 = ABEND CODE 03950002 * REG 15= ADDR IEAVEABD 04000002 * 04050002 *02* REGISTERS-SAVED = NONE 04100002 * 04150002 *02* REGISTER-USAGE = REG 1 = ABEND CODE 04200002 * REG 15= IEAVEABD ENTRY POINT ADDRESS 04250002 * 04300002 *02* REGISTERS-RESTORED = ALL AS ON ENTRY EXCEPT REG 1 & 15 04350002 * 04400002 *01* EXIT-NORMAL = TO IEAVEABD WHO ISSUES AN SVC 13 04450002 * 04500002 *02* CONDITIONS = THE CURRENT TASK MUST BE TERMINATED FOR 04550002 * RECOVERY PURPOSES. 04600002 * 04650002 *02* OUTPUT = NONE 04700002 * 04750002 *02* RETURN-CODES = NONE 04800002 * 04850002 *01* EXIT-ERROR = NONE 04900002 * 04910002 *01* EXTERNAL-REFERENCES = 04950002 * 05000002 *02* ROUTINES = 05050002 * IEAVEABD -- (ON EXIT) TO ISSUE AN SVC 13 05057002 * 05064002 * INVSRTRY -- RSM FUNCTIONAL RECOVERY ROUTINE 05071002 * INPUT= 05078002 * DATA= NONE 05085002 * REGISTERS= 05092002 * R10= ENTRY POINT ADDRESS 05099002 * R11= RETURN ADDRESS 05106002 * OUTPUT= 05113002 * DATA= NONE 05120002 * REGISTERS= 05127002 * R15= UNCHANGED 05134002 *02* DATA-AREAS = 05150002 * PSACSTK -- CURRENT FRR STACK POINTER 05200002 * PSAESAV1 -- EXT FLIH FRR STACK SAVE AREA 05250002 * LCCAXRC1 -- EXT FLIH RECURSION BIT (1) 05300002 * PSAEXT -- EXT FLIH INDICATOR 05350002 * PSAIPCES -- EMS SLIH FLAG (PRIMARY) 05450002 * PSAIPCEC -- EXT CALL FLAG 05500002 * 05650002 *02* CONTROL-BLOCKS = PSA R/W 05700002 * LCCA R/W 05750002 * 05850002 *01* TABLES = NONE 05900002 * 05950002 *01* MACROS = NONE 06000002 * 06050002 *01* SERIALIZATION = DISABLE 06100002 * 06150002 *01* CHANGE-ACTIVITY = Y021104 06200002 * 06250002 *01* MESSAGES = NONE 06300002 * 06350002 *01* ABEND-CODES = X'3FC' 06400002 * 06410002 **** END OF SPECIFICATIONS ***/ 06450002 EJECT 06460002 IEAVEE1R CSECT 06500002 SPACE 2 06510002 */*IEAVEE1R: CHART EXT FLIH(1) FRR */ 06512002 */* HEADER 06514002 */* 06516002 */* 06518002 */* 06518402 */* SECTION 3.1.8.3 06518802 */* EXT FLIH (I) RECOVERY ROUTINE 06519202 */* PAGE # */ 06519602 */*IEAVEE1R: E IEAVEE1R ENTRY */ 06520002 */* P CLEAR THE EXT FLIH RECURSION BIT (1) */ 06530002 */* P CLEAR THE EMS SLIH FLAG AND EXT CALL FLAG */ 06540002 */* P FLIP THE FRR STACK TO THE PREVIOUS CURRENT STACK */ 06544002 */* P SET THE ABEND CODE IN REG 1 FOR SVC 13 */ 06546002 */* P EXIT TO IEAVEABD TO PERFORM ABEND */ 06548002 */* R IEAVEABD */ 06548402 */* FOOTING 06548502 */* 06548602 */* */ 06548702 */*IEAVEE1R: END EXT(1) FLIH FRR */ 06548802 EJECT 06549502 *********************************************************************** 06549602 * * 06549702 * EQUATES * 06549802 * * 06570002 *********************************************************************** 06580002 CXFF EQU X'FF' CONSTANT VALUE = X'FF' 06590002 EXTCODE EQU X'3FC' EXTERNAL FLIH ABEND CODE 06600002 CODEREG EQU 1 REG 1 = ABEND CODE 06650002 R10 EQU 10 GENERAL REGISTER 10 06660002 R11 EQU 11 GENERAL REGISTER 11 06670002 R15 EQU 15 GENERAL REG 15 06700002 CCABASE EQU 1 BASE FOR LCCA 06750002 L20 EQU 20 06800002 *********************************************************************** 06810002 * * 06820002 * IEAVEE1R MAINLINE * 06830002 * * 06840002 *********************************************************************** 06842002 USING PSA,0 06850002 USING LCCA,CCABASE 06900002 USING *,R15 REG 15 = ENTRY POINT ADDRESS 06950002 L CCABASE,PSALCCAV SET UP BASE TO LCCA 07000002 NI PSASUP1,CXFF-PSAEXT 07050002 * CLEAR EXT FLIH BIT 07100002 NI LCCAIHR1,CXFF-LCCAXRC1 07150002 * CLEAR RECURSION 1 BIT 07200002 NI PSASUP2,CXFF-PSAIPCES-PSAIPCEC 07350002 * CLEAR IPC FLAGS-- EMS & EX CALL 07400002 MVC PSACSTK,PSAESAV1 CURRENT FRR STACK = PREVIOUS CURRENT 07550002 L R10,AINVSR GET THE ADDRESS OF RSM FRR 07560002 BALR R11,R10 GO TO RSM FRR FOR CLEANUP 07570002 LA CODEREG,EXTCODE PUT EXT FLIH CODE IN REG 1 FOR ABEND 07600002 L R15,ADABEND BRANCH TO ABEND ROUTINE LOCATED IN 07650002 BR R15 IEAVESVR (SVC FLIH FRR) 07700002 *********************************************************************** 07710002 * * 07720002 * CONSTANTS AND STORAGE * 07730002 * * 07740002 *********************************************************************** 07742002 EXTRN IEAVEABD 07746002 ADABEND DC V(IEAVEABD) ADDRESS COMMON ABEND ROUTINE 07750002 AINVSR DC V(INVSRTRY) ADDRESS RSM FUNCTIONAL RECOVERY RTN 07755002 TITLE 'IEAVEE1R- PSA MAPPING' 07760002 IHAPSA 07800002 TITLE 'IEAVEE1R- LCCA DSECT MAPPING' 07810002 IHALCCA 07850002 END 07950002