TITLE 'IEAVTRT1' 00150102 * /* START OF SPECIFICATIONS **** 00170102 * 00200102 *01* MODULE-NAME = IEAVTRT1 00250102 * 00350102 *01* DESCRIPTIVE-NAME = RTM1 ENTRY POINT PROCESSOR 00400102 * 00450102 *01* COPYRIGHT = N/A 00500102 * 00550102 *01* STATUS = REL.VS2.2 00600102 * 00650102 *01* CHANGE-ACTIVITY = NEW FOR VS2 REL 2 00700102 * 00750102 *02* A = 00 00800102 * 00900102 *02* D = 00 00950102 * 01050102 *02* C = 00 01100102 * 01200102 *01* FUNCTION = THIS MODULE SERVES AS AN EXTENSION TO THE CALLRTM 01250102 * MACRO AND CREATES A COMMON INTERFACE FOR THE MAINLINE RTM1. IT 01260102 * CONTAINS THE RTM BRANCH TABLE WHICH IS REFERENCED BY THE CALLRTM 01270002 * MACRO EXPANSION AND THE ENTRY POINT PROCESSING FOR EACH OF THE 12 01280002 * RTM1 ENTRY POINTS. EACH ENTRY POINT PROCESSOR SAVES THE CALLERS 01290002 * REGISTERS (WHERE APPROPRIATE) AND LOCATES THE VARIOUS STATUS SAVE 01292002 * AREAS, ESTABLISHES THE COMPLETION CODE, AND SETS UP A RECOVERY 01294002 * ENVIRONMENT (WHERE APPROPRIATE). THIS MODULE PROVIDES THE 01296002 * LINKAGE TO THE MAINLINE RTM1 (MODULE IEAVTRTM). WHEN THE MAINLINE 01298002 * RTM1 HAS COMPLETED PROCESSING, IT RETURNS TO THIS MODULE WITH AN 01298402 * INDICATION OF THE TYPE OF EXIT TO EFFECT. THIS MODULE PERFORMS 01298802 * THE FINAL EXIT LINKAGE AS DIRECTED BY THE RTM1. 01299202 * 01300102 *01* OPERATION = THE PROCESSING FOR EACH ENTRY POINT IS AS FOLLOWS: 01310102 * 01310402 * PROGCK - A UNIQUE SWITCH IS SET IN A WORK REGISTER FOR MAINLINE 01312002 * RTM1S PROCESSING. A COMPLETION CODE IS ESTABLISHED BY EITHER 01314002 * CONVERTING THE INTERRUPT CODE STORED BY THE HARDWARE OR BY 01316002 * ACCEPTING A COMPLETION CODE PASSED BY PCFLIH. THE REGISTERS AND 01318002 * PSW ASSOCIATED WITH THE PROGRAM INTERRUPT ARE LOCATED FROM THE 01318402 * FLC/PSA AND/OR THE LCCA. THE RECOVERY STACK TO BE 01318802 * USED FOR RTM1S RECOVERY IS LOCATED. 01319202 * 01319302 * RESTART - A UNIQUE FLAG FOR RESTART IS SET IN A WORK REGISTER FOR 01319602 * RTM1 MAINLINE. A COMPLETION CODE IS GENERATED FOR THE ERROR. THE 01319702 * REGISTERS, PSW AND RECOVERY STACK ASSOCIATED WITH THE INTERRUPT 01319802 * ARE LOCATED. 01319902 * 01329902 * SVCERR - A UNIQUE SVC SWITCH IS SET IN A WORK REGISTER FOR 01339902 * RTM1. REGISTERS, PSW AND COMPLETION CODE ASSOCIATED WITH THE 01343202 * ERROR ARE LOCATED BASED ON 1) ABEND SET UP BY RTM1, 2) ABEND 01345202 * ISSUED BY NON TASK MODE ROUTINES AND 3) ANY OTHER SVC ISSUED BY 01345602 * A NON TASK MODE SUPERVISOR ROUTINE. FOR ABENDS, DUMP OPTIONS, IF 01346002 * SPECIFIED, ARE LOCATED. THE RECOVERY STACK ASSOCIATED WITH THE 01346402 * ERROR IS LOCATED. 01346502 * 01348502 * PGIOERR - THE CALLERS REGISTERS ARE SAVED AND A RECOVERY 01356502 * ENVIRONMENT IS ESTABLISHED. A UNIQUE PGIOERR SWITCH IS SET IN A 01366502 * WORK REGISTER FOR RTM1 PROCESSING. THE COMPLETION CODE IS 01368502 * ESTABLISHED. THE CRITICAL ENTRY POINT REGISTERS ARE CHECKPOINTED 01370502 * INTO THE RECOVERY TRACKING AREA. 01372502 * 01372602 * MACHCK - THE CALLERS REGISTERS ARE SAVED AND A RECOVERY 01372902 * ENVIRONMENT IS ESTABLISHED. A UNIQUE MACHCK SWITCH IS SET IN A 01373302 * WORK REGISTER FOR RTM1 PROCESSING. A RECOVERY ENVIRONMENT IS 01377702 * ESTABLISHED AND CRITICAL ENTRY POINT REGISTERS ARE CHECKPOINTED 01378102 * IN THE RECOVERY TRACKING AREA. 01378502 * 01378902 * DATERR - A UNIQUE SWITCH IS SET IN A WORK REGISTER FOR MAINLINE 01380502 * RTM1S PROCESSING. A COMPLETION CODE IS ESTABLISHED BY 01380902 * CONVERTING THE INTERRUPT CODE STORED BY THE HARDWARE. REGS AND 01381302 * PSW ASSOCIATED WITH THE PROGRAM INTERRUPT ARE LOCATED FROM THE 01382102 * FLC/PSA AND THE LCCA. THE RECOVERY STACK TO BE 01382202 * USED FOR RTM1S RECOVERY IS LOCATED. 01386602 * 01387002 * XABTERM - ABTERM WITH ASID (CROSS MEMORY ABTERM) - 01388602 * CABTERM - ABTERM W/O ASID (CURRENT MEMORY ABTERM) - 01390602 * BTERM - CVTBTERM BRANCH ENTRY (COMPATIBILITY INTERFACE) - THE 01391002 * CALLERS REGISTERS ARE SAVED. A UNIQUE ABTERM SWITCH IS SET FOR 01400002 * THE PARTICULAR ENTRY POINT TAKEN. A RECOVERY ENVIRONMENT IS 01402802 * ESTABLISHED AND CRITICAL ENTRY POINT REGISTERS ARE CHECKPOINTED. 01412802 * 01413202 * MEMTERM - THE CALLERS REGISTERS ARE SAVED. THE DISPATCHER LOCK 01414802 * IS OBTAINED. A UNIQUE MEMTERM SWITCH IS SET FOR RTM1. A RECOVERY 01416802 * ENVIRONMENT IS ESTABLISHED AND CRITICAL ENTRY POINT REGISTERS ARE 01418802 * CHECKPOINTED IN THE RECOVERY TRACKING AREA. 01420802 * 01421202 * IEAVTRTX - XMABTERM REENTRY - 01421602 * A UNIQUE SWITCH FOR XMABTERM REENTRY IS SET. 01422702 * THE EXTENDED ERROR DESCRIPTOR CHAIN POINTED TO BY THE SRB PARM 01428002 * FIELD IS PLACED IN A REGISTER. A SETFRR IS ISSUED AND THE FRR 01429102 * PARM AREA IS INITIALIZED. THE CELL FOR THE SRB IS FREED. AN 01430202 * UNCONDITIONAL REQUEST FOR THE LOCAL LOCK IS ISSUED. 01431302 * 01432402 * IEAVTRTN - MACHCK REENTRY - 01432802 * IF SOFTWARE DAMAGE WAS SUSTAINED BY A MACHINE 01433502 * CHECK, MCH (OR ACR) ISUUES A LPSW TO THIS ENTRY POINT . THE 01434602 * CURRENT STACK IS ESTABLISHED AS THE STACK TO BE RECOVERED BY THE 01435702 * RTM1. THE PCFLIH STACK IS INDICATED AS THE STACK FOR RTM1S 01436802 * RECOVERY IF NEEDED. A UNIQUE MACHCK-REENTRY SWITCH IS SET. 01437902 * REGISTERS, PSW AND MACHINE CHECK INFORMATION, IF AVAILABLE, IS 01439002 * PLACED IN WORK REGISTERS FOR MAINLINE RTM1. 01440102 * 01441202 * IEAVTRTZ - RETURN FROM IEAVTRTM - 01441602 * UPON RETURN FROM THE MAINLINE RTM1, THE FINAL EXIT 01442302 * IS EFFECTED BASED ON INDICATIONS PASSED BY RTM1. EXIT 01443402 * LINKAGE IS ESTABLISHED TO ONE OF THE FOLLOWING ROUTINES: RETRY 01444502 * ROUTINE, MCH, INTERRUPTED PROGRAM, DISPATCHER, SRB EXIT, SVC EXIT 01445602 * PROLOG, CALLER OF RTM1. ANY LOCKS OBTAINED UPON ORIGINAL ENTRY 01446702 * ARE RELEASED. IF AN FRR WAS ESTABLISHED UPON ORIGINAL ENTRY, 01447102 * IT IS DELETED. 01447502 * 01447802 *01* NOTES = IEAVTRT1 HAS THE FOLLOWING CHARACTERISTICS 01448902 * 01450002 *02* CHARACTER-CODE-DEPENDENCIES = EBCDIC CHARACTER CODE DEPENDENT. 01450102 * 01500102 *02* DEPENDENCIES = THIS MODULE IS DEPENDENT ON EACH OF THE CALLING 01550102 * FIRST LEVEL INTERRUPT HANDLERS (PCFLIH, RESTART FLIH, SVC FLIH) 01560002 * IN THE DEFINITION AND LOCATION OF THEIR STATUS SAVE AREAS (IN 01570002 * PSA AND LCCA). THIS MODULE IS ALSO DEPENDENT ON THE CALLERS OF 01580002 * ABTERM W/ASID, MACHCK AND MEMTERM TO PASS A PROPERLY SERIALIZED 01590002 * REGISTER SAVE AREA. FOR ENTRY POINTS PCFLIH, RESTART, SVCFLIH, 01592002 * MACHCK, DATERR AND ABTERM WITH 0 TCB ADRESS, IT IS DEPENDENT ON 01594002 * THE CALLER BEING PHYSICALLY DISABLED. FOR ENTRY POINT PGIOERR 01596002 * IT IS DEPENDENT ON THE CALLER HAVING PROPERLY SERIALIZED (VIA 01598002 * LOCKS) ALL DATA AREAS ASSOCIATED WITH THE PGIOERR PROCESSING 01598402 * OF RTM1. FOR ABTERM AND THE CVTBTERM ENTRY POINTS (NON-0 TCB) 01598802 * IT IS DEPENDENT ON THE CALLER HOLDING THE LOCAL LOCK. 01599202 * 01600102 *02* PERFORMANCE = SINCE THIS MODULE IS CALLED ONLY IN ABNORMAL 01650102 * SITUATIONS, IT DOES NOT AFFECT THE PERFORMANCE OF THE MAINLINE 01660002 * FUNCTIONS OF THE OPERATING SYSTEM. 01670002 * 01700102 *02* RESTRICTIONS = ALL CALLERS MUST BE KEY 0, SUPERVISOR STATE. 01750102 * 01800102 *02* REGISTER-CONVENTIONS = REGISTERS ARE SYMBOLICALLY DEFINED 01850102 * STARTING AT SYMBOL R0 AND SYMBOL FUNCTION 01860002 * 01900102 *02* PATCH-LABEL = N/A 01950102 * 02000102 *01* MODULE-TYPE = MODULE 02050102 * 02060102 *02* PROCESSOR = ASSEMBLER-370R 02070002 * 02092002 *02* MODULE-SIZE = 1800 BYTES 02094002 * 02096002 *02* ATTRIBUTES = REENTERABLE NUCLEUS RESIDENT, ZERO PSW PROTECT 02098002 * KEY, DISABLED OR ENABLED, REFRESHABLE, FIXED, SUPERVISOR STATE 02098402 * 02098802 *01* ENTRY = PROGCK 02099202 * 02099602 *02* PURPOSE = TO GATHER DATA PERTINENT TO A PROGRAM INTERRUPTION 02099702 * FOR MAINLINE RTM1 (SEE OPERATION ABOVE). 02099802 * 02099902 *02* LINKAGE = BALR 02100102 * 02126602 *02* ENQ/LOCK CONDITIONS = NO SPECIFIC LOCK REQUIREMENTS OTHER THAN 02127002 * THE CALLER MUST BE PHYSICALLY DISABLED. 02127102 * 02127402 *02* INPUT = REGISTER 1 CONTAINS FLAGS IN THE HIGH ORDER BYTE AND 02128602 * OPTIONALLY A COMPLETION CODE IN THE LOW ORDER 3 BYTES (REG 1 IS 02129002 * SET UP BY THE CALLRTM MACRO). 02129402 * 02130602 *02* OUTPUT = REGISTERS CONTAIN THE FOLLOWING DATA: 02132602 * CALLRTM FLAGS AND COMPCODE - FLAGSCC 02132702 * ENTRY POINT ID - FUNCTION 02132802 * PTR TO PSW AT TIME OF INTERRUPT (1ST HALF) - ADDRPSW1 02132902 * PTR TO PSW AT TIME OF INTERRUPT (2ND HALF) - ADDRPSW2 02133002 * POINTER TO REGISTERS AT TIME OF INTERRUPT - SAVAREAP 02133202 * POINTER TO STACK FOR RTM1S RECOVERY - TRAKAREA 02134602 * 02135602 *02* EXIT-NORMAL = IEAVTRTM VIA A BALR 02136402 * 02138802 *02* EXIT-ERROR = IEAVTRTM VIA A BALR 02140802 * 02143202 *01* ENTRY = RESTART 02143302 * 02143402 *02* PURPOSE = TO GATHER DATA PERTINENT TO A RESTART INTERRUPTION 02143502 * FOR MAINLINE RTM1 (SEE OPERATION ABOVE). 02143602 * 02143702 *02* LINKAGE = BALR 02143802 * 02143902 *02* ENQ/LOCK CONDITIONS = NO SPECIFIC LOCK REQUIREMENTS OTHER THAN 02144702 * THE CALLER MUST BE PHYSICALLY DISABLED. 02146702 * 02149302 *02* INPUT = REGISTER 1 CONTAINS FLAGS IN THE HIGH ORDER BYTE. 02151302 * 02152502 *02* OUTPUT = REGISTERS CONTAIN THE FOLLOWING DATA: 02153602 * CALLRTM FLAGS AND COMPCODE - FLAGSCC 02155602 * ENTRY POINT ID - FUNCTION 02155702 * PTR TO PSW AT TIME OF INTERRUPT (1ST HALF) - ADDRPSW1 02155902 * PTR TO PSW AT TIME OF INTERRUPT (2ND HALF) - ADDRPSW2 02156002 * POINTER TO STACK FOR RTM1S RECOVERY - TRAKAREA 02156902 * 02157002 *02* EXIT-NORMAL = IEAVTRTM VIA A BALR 02157102 * 02157202 *02* EXIT-ERROR = IEAVTRTM VIA A BALR 02157302 * 02157402 *01* ENTRY = SVCERR 02157802 * 02158202 *02* PURPOSE = TO GATHER DATA PERTINENT TO A PROGRAM ISSUING AN 02158602 * SVC IN A LOCKED OR SRB ENVIRONMENT (SEE OPERATION ABOVE). 02158702 * 02158802 *02* LINKAGE = BALR 02159402 * 02169402 *02* ENQ/LOCK CONDITIONS = EITHER LOCKED (ANY) OR IN SRB MODE. 02169502 * 02169602 *02* INPUT = SVC FLIH STATUS INFORMATION IN LCCA AND PSA. 02169702 * 02169802 *02* OUTPUT = REGISTERS CONTAIN THE FOLLOWING DATA: 02169902 * CALLRTM FLAGS AND COMPLETION CODE - FLAGSCC 02170002 * ENTRY POINT ID - FUNCTION 02170102 * PTR TO PSW AT TIME OF INTERRUPT (1ST HALF) - ADDRPSW1 02170202 * PTR TO PSW AT TIME OF INTERRUPT (2ND HALF) - ADDRPSW2 02170302 * POINTER TO REGISTERS AT TIME OF INTERRUPT - SAVAREAP 02170402 * POINTER TO STACK FOR RTM1S RECOVERY - TRAKAREA 02170502 * POINTER TO DUMPOPTS - DUMPOPTS 02170602 * 02170702 *02* EXIT-NORMAL = IEAVTRTM VIA BALR 02170802 * 02170902 *02* EXIT-ERROR = IEAVTRTM VIA BALR 02171002 * 02171102 *01* ENTRY = PGIOERR 02171202 * 02171302 *02* PURPOSE = TO SAVE CALLERS REGISTERS AND ESTABLISH A RECOVERY 02171402 * ENVIRONMENT (SEE OPERATION ABOVE). 02171602 * 02172202 *02* LINKAGE = BALR 02172802 * 02173402 *02* ENQ/LOCK CONDITIONS = CALLER MUST HAVE PRE-GOTTEN ANY LOCKS 02174002 * NEEDED FOR PGIOERR PROCESSING. 02174602 * 02175202 *02* INPUT = REGISTER 1 CONTAINS FLAGS IN THE HIGH ORDER BYTE AND 02175802 * OPTIONALLY A COMPLETION CODE. 02176402 * REGISTER 4 CONTAINS A POINTER TO AN SRB OR A TCB 02177002 * REGISTER 5 CONTAINS A POINTER TO AN RB OR 0 02177602 * REGISTER 13 CONTAINS A POINTER TO A REGISTER SAVE AREA 02178202 * REGISTER 14 CONTAINS THE RETURN POINT TO THE CALLER 02178802 * 02179402 *02* OUTPUT = REGISTERS CONTAIN THE FOLLOWING DATA: 02180002 * CALLRTM FLAGS AND COMPCODE - FLAGSCC 02180602 * A POINTER TO AN SRB OR A TCB - TARGTCB 02181202 * A POINTER TO AN RB OR 0 - RBADDR 02181802 * ENTRY POINT ID - FUNCTION 02182402 * POINTER TO USER SAVE AREA - SAVAREAP 02183002 * POINTER TO RECOVERY TRACKING AREA - TRAKAREA 02183602 * 02184202 *02* EXIT-NORMAL = IEAVTRTM VIA A BALR 02184802 * 02185402 *02* EXIT-ERROR = IEAVTRTM VIA A BALR 02186002 * 02186602 *01* ENTRY = MACHCK 02187202 * 02187802 *02* PURPOSE = TO SAVES CALLERS REGISTERS AND ESTABLISH A RECOVERY 02188402 * ENVIRONMENT (SEE OPERATION ABOVE). 02189002 * 02189602 *02* LINKAGE = BALR 02190202 * 02190802 *02* ENQ/LOCK CONDITIONS = CALLER MUST BE PHYSICALLY DISABLED 02191402 * 02192002 *02* INPUT = REGISTER 1 CONTAINS A POINTER TO THE LOGREC BUFFER 02192602 * REGISTER 13 CONTAINS A POINTER TO A REGISTER SAVE AREA 02193202 * REGISTER 14 CONTAINS THE RETURN POINT TO THE CALLER 02193802 * REGISTER 15 CONTAINS THE ENTRY POINT 02194402 * 02195002 *02* OUTPUT = REGISTERS CONTAIN THE FOLLOWING DATA: 02195602 * A POINTER TO THE LOGREC BUFFER - ADLOGREC 02196202 * ENTRY POINT ID - FUNCTION 02196802 * POINTER TO USER SAVE AREA - SAVAREAP 02197402 * POINTER TO RECOVERY TRACKING AREA - TRAKAREA 02198002 * 02198602 *02* EXIT-NORMAL = IEAVTRTM VIA A BALR 02199202 * 02199802 *02* EXIT-ERROR = IEAVTRTM VIA A BALR 02200402 * 02201002 *01* ENTRY = DATERR 02201602 * 02202202 *02* PURPOSE = TO GATHER DATA PERTINENT TO A TRANSLATION FAILURE 02202802 * FOR MAINLINE RTM1 (SEE OPERATION ABOVE). 02203402 * 02204002 *02* LINKAGE = BALR 02204602 * 02205202 *02* ENQ/LOCK CONDITIONS = NO SPECIFIC LOCK REQUIREMENTS OTHER THAN 02205802 * THE CALLER MUST BE PHYSICALLY DISABLED. 02206402 * 02207002 *02* INPUT = REGISTER 1 CONTAINS FLAGS IN THE HIGH ORDER BYTE AND 02207602 * OPTIONALLY A COMPLETION CODE IN THE LOW ORDER 3 BYTES (REG 1 IS 02208202 * SET UP BY THE CALLRTM MACRO). 02208802 * 02209402 *02* OUTPUT = REGISTERS CONTAIN THE FOLLOWING DATA 02210002 * CALLRTM FLAGS AND COMPCODE - FLAGSCC 02210602 * ENTRY POINT ID - FUNCTION 02211202 * PTR TO PSW AT TIME OF INTERRUPT (1ST HALF) - ADDRPSW1 02211802 * PTR TO PSW AT TIME OF INTERRUPT (2ND HALF) - ADDRPSW2 02212402 * POINTER TO REGISTERS AT TIME OF INTERRUPT - SAVAREAP 02213002 * POINTER TO STACK FOR RTM1S RECOVERY - TRAKAREA 02214202 * 02214802 *02* EXIT-NORMAL = IEAVTRTM VIA A BALR 02215402 * 02216002 *02* EXIT-ERROR = IEAVTRTM VIA A BALR 02216602 * 02217202 *01* ENTRY = XABTERM (WITH ASID) 02217802 * 02218402 *02* PURPOSE = TO SAVE THE CALLERS REGISTERS IN A CALLER PROVIDED 02219002 * SAVE AREA AND ESTABLISH A RECOVERY ENVIRONMENT(SEE OPERATION 02219602 * ABOVE). 02220002 * 02220202 *02* LINKAGE = BALR 02220802 * 02221402 *02* ENQ/LOCK CONDITIONS = NO SPECIFIC LOCK REQUIREMENTS 02222002 * 02222602 *02* INPUT = REGISTER 1 CONTAINS FLAGS IN THE HIGH ORDER BYTE AND 02223202 * A COMPLETION CODE IN THE LOW ORDER 3 BYTES (REG 1 IS 02223802 * SET UP BY THE CALLRTM MACRO). 02224402 * REGISTER 0 CONTAINS THE ADDRESS OF THE TCB 02225002 * REGISTER 2 CONTAINS THE ASID OF THE ADDRESS SPACE INTO 02225602 * WHICH THE ABTERM IS TO BE SCHEDULED OR 0 INDICATING 02226202 * SCHEDULE THE ABTERM REQUEST INTO THE CURRENT ADDRESS 02226802 * SPACE 02227402 * REGISTER 3 MAY OPTIONALLY CONTAIN THE POINTER TO 02228002 * DUMPOPTS. 02228602 * REGISTER 13 MUST POINT TO A 72 BYTE REGISTER SAVE AREA 02229202 * REGISTER 14 MUST CONTAIN THE RETURN POINT TO THE CALLER 02229802 * REGISTER 15 MUST CONTAIN THE ENTRY POINT 02230402 * 02231002 *02* OUTPUT = REGISTERS CONTAIN THE FOLLOWING DATA: 02231602 * POINTER TO THE TCB - TARGTCB 02232202 * CALLRTM FLAGS AND COMPCODE - FLAGSCC 02232802 * ASID OR 0 - TARGASID 02282802 * POINTER TO DUMPOPTS OR 0 - DUMPOPTS 02332802 * ENTRY POINT ID - FUNCTION 02382802 * POINTER TO CALLERS REGISTERS - SAVAREAP 02532802 * POINTER TO RECOVERY TRACKING AREA - TRAKAREA 02582802 * 02632802 *02* EXIT-NORMAL = IEAVTRTM VIA A BALR 02682802 * 02732802 *02* EXIT-ERROR = IEAVTRTM VIA A BALR 02782802 * 02832802 *01* ENTRY = CABTERM (AND BTERM - CVTBTERM BRANCH) 02882802 * 02932802 *02* PURPOSE = TO SAVE THE CALLERS REGISTERS IN A RTM WSA 02982802 * AND ESTABLISH A RECOVERY ENVIRONMENT(SEE OPERATION ABOVE). 02992802 * 03082802 *02* LINKAGE = BALR 03132802 * 03182802 *02* ENQ/LOCK CONDITIONS = IF R0=0, CALLER MUST BE PHYSICALLY 03232802 * DISABLED, IF R0^=0, CALLER MUST HOLD LOCAL LOCK. 03282802 * 03332802 *02* INPUT = REGISTER 1 CONTAINS FLAGS IN THE HIGH ORDER BYTE AND 03382802 * A COMPLETION CODE IN THE LOW ORDER 3 BYTES (REG 1 IS 03432802 * SET UP BY THE CALLRTM MACRO). 03482802 * REGISTER 0 CONTAINS THE ADDRESS OF THE TCB OR 0 03532802 * REGISTER 3 MAY OPTIONALLY CONTAIN THE POINTER TO 03582802 * DUMPOPTS. 03632802 * REGISTER 14 MUST CONTAIN THE RETURN POINT TO THE CALLER 03682802 * REGISTER 15 MUST CONTAIN THE ENTRY POINT 03732802 * 03782802 *02* OUTPUT = REGISTERS CONTAIN THE FOLLOWING DATA: 03832802 * CALLRTM FLAGS AND COMPCODE - FLAGSCC 03882802 * POINTER TO THE TCB - TARGTCB 03932802 * POINTER TO DUMPOPTS OR 0 - DUMPOPTS 03982802 * ENTRY POINT ID - FUNCTION 04032802 * POINTER TO CALLERS REGISTERS - SAVAREAP 04182802 * POINTER TO RECOVERY TRACKING AREA - TRAKAREA 04232802 * 04282802 *02* EXIT-NORMAL = IEAVTRTM VIA A BALR 04332802 * 04382802 *02* EXIT-ERROR = IEAVTRTM VIA A BALR 04432802 * 04482802 *01* ENTRY = MEMTERM 04532802 * 04582802 *02* PURPOSE = TO SAVE THE CALLERS REGISTERS IN A CALLER PROVIDED 04632802 * SAVE AREA AND ESTABLISH A RECOVERY ENVIRONMENT(SEE OPERATION 04682802 * ABOVE). 04692802 * 04732802 *02* LINKAGE = BALR 04782802 * 04832802 *02* ENQ/LOCK CONDITIONS = NO SPECIFIC LOCK REQUIREMENTS 04882802 * 04932802 *02* INPUT = REGISTER 1 CONTAINS FLAGS IN THE HIGH ORDER BYTE AND 04982802 * A COMPLETION CODE IN THE LOW ORDER 3 BYTES (REG 1 IS 05032802 * SET UP BY THE CALLRTM MACRO). 05082802 * REGISTER 2 CONTAINS THE ASID OF THE ADDRESS SPACE TO BE 05132802 * TERMINATED 05182802 * REGISTER 13 MUST POINT TO A 72 BYTE REGISTER SAVE AREA 05232802 * REGISTER 14 MUST CONTAIN THE RETURN POINT TO THE CALLER 05282802 * REGISTER 15 MUST CONTAIN THE ENTRY POINT 05332802 * 05382802 *02* OUTPUT = REGISTERS CONTAIN THE FOLLOWING DATA: 05432802 * CALLRTM FLAGS AND COMPCODE - FLAGSCC 05482802 * ASID OR 0 - TARGASID 05532802 * ENTRY POINT ID - FUNCTION 05632802 * POINTER TO CALLERS REGISTERS - SAVAREAP 05782802 * POINTER TO RECOVERY TRACKING AREA - TRAKAREA 05832802 * 05882802 *02* EXIT-NORMAL = IEAVTRTM VIA A BALR 05932802 * 05982802 *02* EXIT-ERROR = IEAVTRTM VIA A BALR 06032802 * 06082802 *01* ENTRY = IEAVTRTN - MACHINE CHECK REENTRY 06084802 * 06086802 *02* PURPOSE = TO SET UP AN INTERFACE FOR SOFTWARE RECOVERY FROM A 06088802 * HARDWARE ERROR. (SEE OPERATION ABOVE). 06089202 * 06091202 *02* LINKAGE = LPSW 06091602 * 06092002 *02* ENQ/LOCK CONDITIONS = NO SPECIFIC LOCK REQUIREMENTS 06092402 * 06092502 *02* INPUT = REGISTER 1 CONTAINS FLAGS IN THE HIGH ORDER BYTE AND 06092602 * REGISTER 2 CONTAINS THE POINTER TO THE EED CHAIN OR 0. 06093402 * A COMPLETION CODE IN THE LOW ORDER 3 BYTES (REG 1 IS 06098002 * SET UP BY MAINLINE RTM1). 06098802 * REGISTER 3 CONTAINS ABBREVIATED HARDWARE REPAIR STATUS 06099602 * FLAGS 06100002 * 06100402 *02* OUTPUT = REGISTERS CONTAIN THE FOLLOWING DATA: 06102702 * CALLRTM FLAGS AND COMPCODE - FLAGSCC 06104702 * ENTRY POINT ID - FUNCTION 06105502 * POINTER TO REGISTERS AT TIME OF INTERRUPT - SAVAREAP 06105902 * POINTER TO STACK FOR RTM1S RECOVERY - TRAKAREA 06106102 * POINTER TO PSW AT TIME OF ERROR - ADDRPSW1 06106902 * POINTER TO EED CHAIN - EEDCHAIN 06107302 * POINTER TO HARDWARE REPAIR DATA - REPAIRAD 06107702 * 06108702 *01* ENTRY = IEAVTRTX - CROSS ADDRESS SPACE ABTERM REENTRY 06109202 * 06110002 *02* PURPOSE = TO SET UP AN INTERFACE FOR THE ABTERM FUNCTION OF 06110802 * RTM1. (SEE OPERATION ABOVE). 06111602 * 06112402 *02* LINKAGE = LPSW BY SRB DISPATCHER 06113202 * 06114002 *02* ENQ/LOCK CONDITIONS = NO LOCKS HELD - SRB MODE 06114802 * 06115602 *02* INPUT = REGISTER 1 POINTS TO THE SRB. 06116402 * 06117202 *02* OUTPUT = REGISTERS CONTAIN THE FOLLOWING DATA: 06118002 * CALLRTM FLAGS AND COMPCODE - FLAGSCC 06118802 * ENTRY POINT ID - FUNCTION 06119602 * TCB ADDRESS - TARGTCB 06120402 * POINTER TO DUMP OPTIONS OR 0 - DUMPOPTS 06121202 * POINTER TO ORIGINAL CALLERS REGISTERS - SAVAREAP 06122002 * POINTER TO A RECOVERY TRACKING AREA - TRAKAREA 06122802 * POINTER TO EED CHAIN - EEDCHAIN 06123602 * 06124402 *02* EXIT-NORMAL = IEAVTRTM VIA A BALR 06125202 * 06126002 *02* EXIT-ERROR = IEAVTRTM VIA A BALR 06126802 * 06127602 *01* ENTRY = IEAVTRTZ RETURN FROM MODULE IEAVTRTM - MAINLINE RTM1 06128402 * 06129202 *02* PURPOSE = TO EFFECT THE FINAL EXIT LINKAGE BACK TO THE MAINLINE 06130002 * SUPERVISOR AS DIRECTED BY RTM1. 06130802 * 06131602 *02* LINKAGE = BR 06132402 * 06133202 *02* ENQ/LOCK CONDITIONS = IF THE DISPATCHER OR LOCAL LOCK WAS 06134002 * OBTAINED DURING IEAVTRT1'S ORIGINAL ENTRY POINT PROCESSING, 06134402 * THEY WILL STILL BE HELD ON RETURN FROM IEAVTRTM. 06134802 * 06135602 *02* INPUT = THE MAINLINE RTM1 RETURNS AN INDICATION IN A REGISTER 0 06136402 * OF THE TYPE OF EXIT TO BE PERFORMED. ADDITIONAL INFORMATION IS 06137202 * PASSED BY MAINLINE RTM1 DEPENDING ON THE TYPE OF EXIT AS 06138002 * FOLLOWS: 06138802 * RETRY EXIT - A POINTER TO THE RTM1WA IS PASSED IN R1 06139602 * MCH EXIT - A POINTER TO MCH REGISTER SAVE AREA AND A 06140402 * POINTER TO THE MCH RETURN DATA IS PASSED IN R1 06141202 * RESTART RESUME - NO ADDITIONAL INFORMATION IS PASSED 06142002 * DISPATCHER EXIT - NO ADDITIONAL INFORMATION IS PASSED 06142802 * SRB EXIT - NO ADDITIONAL INFORMATION IS PASSED 06144802 * SVC EXIT - NO ADDITIONAL INFORMATION IS PASSED 06146802 * CALLER - NO ADDITIONAL INFORMATION IS PASSED 06148802 * 06161402 *02* OUTPUT = OUTPUT IS PRODUCED BASED ON THE EXIT TYPE AS FOLLOWS: 06163402 * RETRY EXIT - REGISTERS 0-14 ARE LOADED WITH VALUES 06163802 * DICTATED BY THE FRR WHICH RETRIED. 06163902 * MCH EXIT - REGISTERS 2-0 ARE RESTORED TO THEIR VALUES 06164202 * ON INITIAL ENTRY. REGISTER 1 IS SET TO POINT TO RETURN 06164302 * DATA TO MCH. 06164402 * RESTART RESUME - ALL GENERAL PURPOSE REGISTERS ARE 06165002 * RESTORED TO THEIR VALUE AT TIME OF RESTART INTERRUPT. 06168302 * DISPATCHER EXIT - NONE 06173402 * SRB EXIT - NONE 06176702 * SVC EXIT - NONE 06180002 * CALLER - REGISTER 15 IS ZEROD. REGISTERS 0-14 ARE 06183302 * RESTORED TO THEIR ORIGINAL VALUE. 06185302 * 06206402 *01* EXIT-NORMAL = EXITS FINAL ARE TAKEN AS INDICATED BY MAINLINE RTM1 06209702 * AS FOLLOWS: 06209802 * RETRY EXIT - REGISTER 15 IS LOADED WITH THE RETRY 06211702 * ADDRESS RETURNED BY RTM1. 06211802 * MCH EXIT - A BRANCH ON REGISTER 14 IS ISSUED 06212502 * RESTART RESUME - A LPSW INSTRUCTION POINTING TO THE PSW 06222602 * STORED BY THE RESTART INTERRUP IS ISSUED. 06223002 * DISPATCHER EXIT - A BRANCH TO THE ADDRESS IN CVT0DS IS 06226602 * ISSUED. 06227002 * SRB EXIT - A BRANCH TO THE ADDRESS IN CVT FOR THE SRB 06228602 * EXIT. 06228702 * SVC EXIT - A BRANCH TO THE ADDRESS IN THE CVTEXPRO 06228802 * FIELD IS ISSUED. 06229602 * CALLER - A BRANCH ON REGISTER 14 IS ISSUED. 06231202 * 06232802 *01* EXIT-ERROR = NONE 06236602 * 06244302 *01* EXTERNAL-REFERENCES = 06259702 * 06267402 *02* ROUTINES = SETLOCK 06275102 *02* ROUTINES = SETFRR 06277102 *02* ROUTINES = IEAVTRTM 06282802 * 06332802 *02* DATA-SETS = NONE 06382802 * 06432802 *02* DATA-AREA = FLC/PSA 06482802 * 06532802 *02* CONTROL BLOCKS = LCCA - U M LCCAT - U, ASCB - U, ASXB - 06582802 * U, WSACABTM - M, WSALABTM - M, CVT - U 06632802 * 06682802 *01* TABLES = NONE 06732802 * 06782802 *01* MACROS = IHAPSA, IHALCCA, IHALCCAT, IHAASXB, IHAASCB, IHACVT 06832802 * 06882802 *01* MESSAGES = NONE 06932802 * 06982802 *01* MO NUMBER = 4.1.1, 4.1.1.1, 4.1.1.2, 4.1.1.3, 4.1.1.4, 4.1.1.5, 07032802 * 4.1.1.6, 4.1.1.7, 4.1.1.8, 4.1.1.9, 4.1.1.10, 4.1.1.11 07082802 * 07132802 **** END OF SPECIFICATIONS ***/ 07182802 EJECT 07192802 IEAVTRT1 CSECT 07202802 *a-000000-999999 @Y02703 07212802 ENTRY IEAVTRTZ RETURN POINT FROM IEAVTRTM FOR EXIT 07242802 * PROCESSING 07262802 ENTRY IEAVTRTN ENTRY POINT FOR MACHINE CHECK REENTRY 07272802 ENTRY IEAVTRTX ENTRY POINT FOR XABTERM REENTRY 07274802 SPACE 2 07282802 *********************************************************************** 07332802 * * 07382802 * GENERAL REGISTER EQUATES * 07432802 * * 07482802 *********************************************************************** 07532802 SPACE 2 07582802 R0 EQU 0 07632802 R1 EQU 1 07682802 R2 EQU 2 07732802 R3 EQU 3 07782802 R4 EQU 4 07832802 R5 EQU 5 07882802 R6 EQU 6 07932802 R7 EQU 7 07982802 R8 EQU 8 BASE FOR IHALCCA MAPPING MACRO 08032802 R9 EQU 9 WORK REG 08082802 R10 EQU 10 BASE REGISTER FOR IEAVTRT1 08132802 R11 EQU 11 WORK REGISTER 08182802 R12 EQU 12 WORK REGISTER 08232802 R13 EQU 13 08282802 R14 EQU 14 INTERNAL LINK REGISTER 08332802 R15 EQU 15 08382802 SPACE 2 08432802 *********************************************************************** 08482802 * * 08532802 * OTHER EQUATES * 08582802 * * 08632802 *********************************************************************** 08682802 SPACE 2 08732802 CONST1 EQU 1 USED TO ADDRESS R0 IN SAVEAREA AFTER 08782802 * SAVE AREA POINTER HAS BEEN 08786802 * CHANGED TO USE A BYTE IN THE 08788802 * SAVE AREA AS A WORKAREA 08790802 CONST8 EQU 8 USED AS A DISPLACEMENT TO STORE 08792802 * REGISTERS INTO A SAVE AREA 08812802 CONST12 EQU 12 SHIFT COMMPLETION CODE INTO BITS 08832802 * 8-19 OF REGISTER 08852802 CONST7 EQU 7 DISPLACEMENT INTO SAVE AREA OF WORK 08882802 * BYTE 08892802 CONST4 EQU 4 USED TO REFERENCE R1 IN SAVE AREA 08932802 CONST64 EQU 64 DISPLACEMENT TO R14 IN SAVE AREA 08982802 * WHEN ADDRESS POINTS TO BEGINNING 08992802 * OF SAVE AREA 09002802 CONST56 EQU 56 DISPLACEMENT TO R14 IN SAVE AREA 09012802 * WHEN ADDRESS POINTS TO R0 SLOT 09022802 * IN SAVE AREA 09024802 SYSMSK00 EQU X'00' MASK OF 00 TO 'OR' AGAINST SYSTEM 09032802 * MASK IN CURRENT PSW WITHOUT CHANGING 09082802 * IT 09132802 SYSMSK03 EQU X'03' MASK TO CHECK SYSTEM MASK FOR 09182802 * DISABLEMENT OF I/O AND EXTERNAL 09232802 * INTERRUPTS 09234802 NULL EQU X'00' BYTE OF 00 USED TO ZERO RESTART 09236802 * RECURSION BYTE 09238802 LOWBYTE EQU 1 MASK FOR CLM INSTRUCTIONS, COMPARE 09242802 * LOW ORDER BYTE OF REG TO STORAGE 09252802 LEN7REGS EQU 28 LENGTH OF 7 REGISTERS FOR MOVE INSTR 09262802 SPACE 2 09282802 *********************************************************************** 09332802 * * 09382802 * THE FOLLOWING EQUATES ARE USED TO INTERFACE WITH IEAVTRTM. * 09432802 * THEY ASSIGN REGISTERS AND FLAGS WHICH ARE USED BY IEAVTRTM. * 09482802 * THE NAMES USED ARE THE SAME NAMES AS USED BY IEAVTRTM. THE * 09532802 * REGISTER NAMES ARE DECLARED IN IEAVTRTM. THE FUNCTION CODE * 09582802 * NAMES ARE DECLARED IN THE IHART1W MAPPING MACRO. CHANGES * 09682802 * IN THE RTM1WA RELATING TO THE FUNCTION CODES OR IN MODULE * 09732802 * IEAVTRTM RELATING TO INTERFACE REGISTERS MUST BE REFLECTED * 09742802 * IN THE CORRESPONDING EQUATES. * 09752802 * * 09782802 *********************************************************************** 09832802 SPACE 2 09882802 * 09932802 * REGISTER EQUATES 09982802 * 09992802 FUNCTION EQU R0 USED TO CONTAIN A FUNCTION CODE THAT 10032802 * REFLECTS THE ENTRY POINT 10082802 FLAGSCC EQU R1 USED TO CONTAIN CALLRTM FLAGS AND 10132802 * COMPLETION CODES 10182802 TARGASID EQU R2 USED TO CONTAIN ASID FOR CROSS ADDR 10232802 * SPACE FUNCTION REQUESTS 10282802 ADDRPSW1 EQU R2 USED TO CONTAIN ADDRESS OF FIRST PART 10332802 * OF PSW 10382802 ADDRPSW2 EQU R3 USED TO CONTAIN ADDRESS OF SECOND 10432802 * PART OF PSW 10482802 TARGTCB EQU R3 USED TO CONTAIN ADDRESS OF TCB 10532802 TARGSRB EQU R3 USED TO CONTAIN ADDRESS OF SRB 10582802 TRAKAREA EQU R4 USED TO CONTAIN ADDRESS OF RECOVERY 10632802 * STACK OR ADDR OF FRR 6 WORDS 10682802 DUMPOPTS EQU R5 USED TO CONTAIN ADDR OF DUMP OPTIONS 10732802 REPAIRAD EQU R5 USED TO CONTAIN ADDRESS OF REPAIR 10782802 * DATA ON MACHINE CHECK REENTRY 10832802 REPRDATA EQU R5 USED TO CONTAIN ABBREVIATED REPAIR 10882802 * DATA ON MACHINE CHECK REENTRY 10932802 ADLOGREC EQU R6 USED TO CONTAIN ADDRESS OF LOGREC 10982802 * BUFFER ON MACHINE CHECK ENTRY 11032802 EEDCHAIN EQU R6 USED TO CONTAIN THE ADDRESS OF A 11082802 * CHAIN OF EED'S (EXTENDED ERROR DESCR- 11132802 * IPTORS) 11182802 RBADDR EQU R7 USED TO CONTAIN ADDRESS OF AN RB 11232802 SAVAREAP EQU R13 USED TO CONTAIN ADDRESS OF A SAVE 11282802 * AREA - EITHER THE CALLERS OR AN 11332802 * INTERRUPT HANDLERS 11382802 SPACE 2 11432802 * 11482802 * FUNCTION CODE EQUATES WHICH IDENTIFY ENTRY POINT TO IEAVTRTM 11532802 * 11582802 RT1WPCFL EQU 1 FUNCTION CODE FOR PCFLIH ENTRY POINT 11632802 RT1WREST EQU 2 FUNCTION CODE FOR RESTART ENTRY POINT 11682802 RT1WSVC EQU 3 FUNCTION CODE FOR SVCFLIH ENTRY POINT 11732802 RT1WDAT EQU 4 FUNCTION CODE FOR DATERR ENTRY POINT 11782802 RT1WMCHR EQU 5 FUNCTION CODE FOR MCH REENTRY POINT 11832802 RT1WPGIO EQU 10 FUNCTION CODE FOR PGIOERR ENTRY POINT 11882802 RT1WABT1 EQU 11 FUNCTION CODE FOR ABTERM ENTRY POINT, 11932802 * (TCB IN CURRENT ADDRESS SPACE) 11982802 RT1WABT2 EQU 12 FUNCTION CODE FOR CVTBTERM ENTRY PT, 12032802 * (COMPATIBLE BRANCH ENTRY INTERFACE) 12082802 RT1WABT3 EQU 13 FUNCTION CODE FOR CROSS ADDRESS SPACE 12132802 * ABTERM REENTRY POINT 12182802 RT1WMEMT EQU 15 FUNCTION CODE FOR MEMTERM ENTRY POINT 12232802 RT1WXMAB EQU 16 FUNCTION CODE FOR CROSS ADDRESS SPACE 12282802 * ABTERM ENTRY POINT 12332802 RT1WMACH EQU 20 FUNCTION CODE FOR MCH ENTRY POINT 12382802 SPACE 2 12392802 * 12402802 * FUNCTION CODE EQUATES WHICH IDENTIFY EXIT TYPE TO IEAVTRT1 12412802 * 12422802 RT1RETRY EQU 32 FUNCTION CODE FOR RETRY EXIT 12424802 RT1DISP EQU 35 FUNCTION CODE FOR DISPATCHER EXIT 12426802 RT1SRBEX EQU 36 FUNCTION CODE FOR SRB EXIT 12428802 RT1EXPRO EQU 37 FUNCTION CODE FOR EXIT PROLOGUE EXIT 12430802 RT1RESUM EQU 34 FUNCTION CODE FOR RESTART RESUME EXIT 12431202 RT1RET EQU 38 FUNCTION CODE FOR RET TO CALLER EXIT 12431602 RT1MCHEX EQU 33 FUNCTION CODE FOR MCH EXIT 12432002 EJECT 12432802 *********************************************************************** 12482802 * * 12532802 * IEAVTRT1 IS AN EXTENSION OF THE CALLRTM MACRO. THE CALLRTM * 12582802 * MACRO IS DEPENDENT ON THE FOLLOWING CODE BEING DIRECTLY * 12632802 * AFTER THE CSECT STATEMENT. THE ADDRESSABILITY AND BRANCH * 12682802 * INSTRUCTION ARE FOR THE CVTBTERM COMPATIBLE BRANCH ENTRY TO * 12732802 * ABTERM. THE ADCONS ARE USED BY THE CALLRTM MACRO TO MATCH * 12782802 * THE ENTRY POINT TO THE TYPE= OPERAND ON THE CALLRTM MACRO. * 12832802 * IF THE FOLLOWING STATEMENTS ARE CHANGED OR MOVED, THE * 12882802 * CALLRTM MACRO MUST BE CHANGED * 12932802 * * 12982802 *********************************************************************** 13032802 SPACE 2 13082802 BALR R15,0 COMPATIBLE INTERFACE FOR BRANCH ENTRY 13132802 USING *,15 TO ABTERM 13182802 B BTERM 13232802 DC X'0000' ALIGN FOLLOWING ADCONS ON WORD BDY 13282802 DC A(DATERR) DAT ERROR ENTRY POINT ADDRESS 13332802 DC A(RESTART) RESTART ENTRY POINT ADDRESS 13382802 DC A(MACHCK) MACHINE CHECK ENTRY POINT ADDRESS 13432802 DC A(SVCERR) SVC FLIH ENTRY POINT ADDRESS 13482802 DC A(PGIOERR) PAGE I/O ERROR ENTRY POINT ADDRESS 13532802 DC A(CABTERM) ABTERM, CURR ADDR SPACE ENTRY PT ADDR 13582802 DC A(MEMTERM) MEMORY TERMINATION ENTRY POINT ADDR 13632802 DC A(PROGCK) PROGRAM CHECK ENTRY POINT ADDRESS 13682802 DC V(IEAVTACR) ACR ENTRY POINT 13732802 DC A(XABTERM) CROSS ADDRESS SPACE ABTERM ENTRY PT 13782802 MODID BR=NO PUT MODULE NAME, RELEASE NUMBER AND 13832802 * DATE OF COMPILE IN OBJECT CODE 13882802 USING PSA,0 13932802 SPACE 2 13982802 *********************************************************************** 14032802 * * 14082802 * THE FOLLOWING CODE SETS THE INTERFACE TO IEAVTRTM WHEN * 14132802 * IEAVTRT1 IS ENTERED DIRECTLY BY THE CALLER WHO BRANCH ENTERS * 14182802 * USING THE ADDRESS IN CVTBTERM (ADDRESS OF IEAVTRT1). THIS * 14232802 * IS THE COMPATIBLE INTEFACE FOR BRANCH ENTRY TO ABTERM * 14282802 * INPUT REGISTERS - * 14292802 * FLAGSCC (R1) - CALLRTM FLAGS AND COMPLETION CODES * 14302802 * FUNCTION (R0) - TCB ADDRESS * 14312802 * R14 - RETURN ADDRESS * 14324802 * * 14332802 *********************************************************************** 14382802 SPACE 2 14432802 BTERM EQU * 14482802 L R15,PSAAOLD ADDRESS OF CURRENT ASCB 14532802 USING ASCB,R15 BASE FOR IHAASCB MAPPING MACRO 14582802 L R15,ASCBASXB ADDRESS OF CURRENT ASXB 14632802 USING ASXB,R15 BASE FOR IHAASXB MAPPING MACRO 14682802 L R15,ASXBSPSA ADDRESS OF LOCAL WORK/SAVE AREA 14732802 USING WSAL,R15 BASE FOR IHAWSAVT CLASS=LOCAL 14782802 L R15,WSALABTM ADDR OF LOCAL ABTERM SAVE AREA 14832802 STM R0,R15,CONST8(R15) SAVE CALLERS REGISTERS 14882802 LA SAVAREAP,CONST8(R15) ADDR IN PROPER REG, POINT TO R0 14932802 * FOR INTERFACE TO RTM 14982802 BALR R10,0 ESTABLISH 15032802 USING *,R10 ADDRESSABILITY 15082802 DROP R15 15132802 LR TARGTCB,FUNCTION ADDRESS OF TCB IN PROPER INTERFACE 15182802 * REGISTER FOR IEAVTRTM 15232802 LA TARGTCB,0(TARGTCB) CLEAR HIGH ORDER BIT 15252802 LA FUNCTION,RT1WABT2 FUNCTION CODE FOR BRANCH ENTRY TO 15282802 * ABTERM COMPATIBILE INTERFACE TO RTM 15332802 SETLOCK TEST,TYPE=SPIN,REGS=(R12) TEST TO SEE IF CALLER HOLDS 15337802 * ANY SPIN LOCKS 15342802 LTR R15,R15 TEST SETLOCK RETURN CODE 15347802 BNZ BTERM2 CONT NORMALLY IF NO LOCKS ARE HELD 15352802 LA FUNCTION,RT1WXMAB FUNCTION CODE FOR CROSS ADDRESS 15357802 * SPACE ABTERM 15362802 SR TARGASID,TARGASID SET ASID=0 SO THAT ABTERM WILL OCCUR 15367802 * IN CURRENT ADDRESS SPACE 15372802 BTERM2 LA R15,SETFRR ADDR OF COMMON SETFRR MACRO 15382802 BALR R14,R15 GO TO COMMON SETFRR MACRO 15392802 USING RT1T6WDS,TRAKAREA 6 WORDS MAPPED BY RT1T6WDS DSECT 15432802 ST SAVAREAP,RT1TREGS CHECKPOINT ADDRESS OF SAVE AREA 15482802 STC FUNCTION,RT1TENPT CHECKPOINT FUNCTION CODE 15532802 SR DUMPOPTS,DUMPOPTS NO DUMPOPTS 15552802 SR EEDCHAIN,EEDCHAIN NO EED'S 15562802 SR RBADDR,RBADDR NO RB ADDRESS 15572802 B GOTORTM GO SET UP TO GO TO IEAVTRTM 15582802 DROP TRAKAREA 15632802 SPACE 2 15682802 *********************************************************************** 15732802 * * 15782802 * THE FOLLOWING CODE SETS THE INTERFACE TO IEAVTRTM WHEN * 15832802 * IEAVTRT1 IS ENTERED BY THE PCFLIH IF RECURSIVE TRANSLATION * 15882802 * FAILURES HAVE OCCURED WITHIN THE RECOVERY PROCESS * 15932802 * INPUT REGISTERS - * 15942802 * FLAGSCC (R1) - CALLRTM FLAGS AND COMPLETION CODES * 15952802 * R15 - ENTRY POINT ADDRESS * 15974802 * * 15982802 *********************************************************************** 16032802 SPACE 2 16082802 DATERR LR R10,R15 ENTRY POINT ADDRESS SET BY CALLRTM 16132802 USING DATERR,R10 ESTABLISH ADDRESSABILITY 16182802 LA FUNCTION,RT1WDAT FUNCTION CODE FOR DAT ERROR ENTRY PT 16232802 L R8,PSALCCAV ADDRESS OF CURRENT LCCA 16282802 USING LCCA,R8 BASE FOR IHALCCA MAPPING MACRO 16332802 L R2,LCCAASID CHECK FOR POSSIBLE TRASERR @ZA02390 16335841 LTR R2,R2 IS THERE A TRASD FROM ASID @ZA02390 16338841 BZ DATERR02 IF NOT CONTINUE DATERR PROC @ZA02390 16341841 L R1,CC0FC SET UP TRASERR COMP CODE @ZA02390 16344841 SR R5,R5 SET UP TO ZERO LCCAASID @ZA02390 16347841 ST R5,LCCAASID ZERO LCCAASID @ZA02390 16350841 L R5,PSAAOLD -> ASCB IN CONTROL PRE TRAS @ZA02390 16353841 USING ASCB,R5 @ZA02390 16356841 LCTL 1,1,ASCBSTOR RESTORE STORE TO ORIG MEMORY @ZA02390 16359841 DROP R5 @ZA02390 16362841 LA R15,TRASERR CONTINUE AS IF PROGCHK @ZA02390 16365841 BR R15 WITH TRASERR COMP CODE @ZA02390 16368841 DATERR02 L R11,CCMASK MASK TO CHECK CALL RTM FLAGS FOR 16371841 * PRESENCE OF COMPLETION CODE @ZA02390 16382841 NR R11,FLAGSCC IS A COMPLETION CODE PASSED 16482802 BZ DATERR03 YES, GO FIND PSW 16532802 LH R11,FLCPICOD NO-GET HARDWARE STORED INTERRUPT CODE 16582802 LA R15,BUILDCC ADDRESS OF RTN TO BUILD COMPCODE 16632802 BALR R14,R15 GO BUILD COMPLETION CODE FROM 16642802 * INTERRUPT CODE 16682802 OR FLAGSCC,R11 COMPLETION CODE IN PROPER REGISTER 16832802 DATERR03 LA ADDRPSW1,FLCPOPSW FIRST PART OF PSW 16882802 LA ADDRPSW2,PSAEPPSW SECOND PART OF PSW 16932802 LA SAVAREAP,LCCAPGR1 INTERRUPT REGS IN PRIMARY SAVE AREA 16982802 L TRAKAREA,PSAPSTK ADDRESS OF PCFLIH RECOVERY STACK 17032802 SR DUMPOPTS,DUMPOPTS NO DUMPOPTS 17042802 SR EEDCHAIN,EEDCHAIN NO EED'S 17052802 SR RBADDR,RBADDR NO RB ADDRESS 17062802 B GOTORTM GO SET UP TO BRANCH TO IEAVTRTM 17082802 DROP R8 17132802 SPACE 2 17182802 *********************************************************************** 17232802 * * 17282802 * THE FOLLOWING CODE SETS THE INTERFACE TO IEAVTRTM WHEN * 17332802 * IEAVTRT1 IS ENTERED BY THE RESTART FLIH * 17382802 * INPUT REGISTERS - * 17392802 * R15 - ENTRY POINT ADDRESS * 17402802 * * 17432802 *********************************************************************** 17482802 SPACE 2 17532802 RESTART LR R10,R15 ENTRY POINT ADDRESS SET BY CALLRTM 17582802 USING RESTART,R10 ESTABLISH ADDRESSABILITY 17632802 LA FUNCTION,RT1WREST FUNCTION CODE FOR RESTART ENTRY POINT 17682802 L FLAGSCC,CC071 COMPLETION CODE FOR RESTART 17732802 LA ADDRPSW1,PSARSPSW FIRST PART OF PSW 17782802 SR ADDRPSW2,ADDRPSW2 INDICATE NO SECOND PART OF PSW 17832802 L R8,PSALCCAV ADDRESS OF CURRENT LCCA 17882802 USING LCCA,R8 BASE FOR IHALCCA MAPPING MACRO 17932802 LA SAVAREAP,LCCARSGR ADDR OF RESTART FLIH REG SAVE AREA 17982802 L TRAKAREA,PSARSTK ADDR OF RESTART RECOVERY STACK 18032802 SR DUMPOPTS,DUMPOPTS NO DUMPOPTS 18042802 SR EEDCHAIN,EEDCHAIN NO EED'S 18052802 SR RBADDR,RBADDR NO RB ADDRESS 18062802 NI PSARECUR,NULL ZERO RESTART RECURSION BYTE 18067802 B GOTORTM GO SET UP TO GO TO IEAVTRTM 18082802 DROP R8 18132802 SPACE 2 18182802 *********************************************************************** 18232802 * * 18282802 * THE FOLLOWING CODE SETS THE INTERFACE TO IEAVTRTM WHEN * 18332802 * IEAVTRT1 IS ENTERED BY MCH OR ACR TO PROCESS HARDWARE * 18382802 * RECORDING AND HARDWARE DAMAGE REPAIR * 18432802 * INPUT REGISTERS - * 18442802 * FLAGSCC (R1) - ADDRESS OF LOGREC BUFFER * 18452802 * SAVAREAP (R13) - ADDRESS OF SAVE AREA * 18462802 * R14 - RETURN ADDRESS * 18472802 * R15 - ENTRY POINT ADDRESS * 18474802 * * 18482802 *********************************************************************** 18532802 SPACE 2 18582802 MACHCK STM R0,R15,CONST8(SAVAREAP) SAVE CALLERS REGISTERS IN SAVE 18632802 * AREA PROVIDED BY HIM 18682802 LA SAVAREAP,CONST8(SAVAREAP) ADDRESS POINTS TO R0 18692802 LR R10,R15 ENTRY POINT ADDRESS SET BY CALLRTM 18732802 USING MACHCK,R10 ESTABLISH ADDRESSABILITY 18782802 LA FUNCTION,RT1WMACH FUNCTION CODE FOR MACHINE CHECK E.P. 18832802 SETFRR A,FRRAD=RTHFRRAD,PARMAD=(TRAKAREA),WRKREGS=(R12,R9) 18882802 USING RT1T6WDS,TRAKAREA 6 WORDS ARE MAPPED BY RT1T6WDS DSECT 18932802 ST SAVAREAP,RT1TREGS CHECKPOINT ADDR OF CALLERS SAVE AREA 18982802 STC FUNCTION,RT1TENPT CHECKPOINT FUNCTION CODE 19032802 LR ADLOGREC,FLAGSCC PASS ADDR OF LOGREC BUFFER TO RTM 19082802 B GOTORTM2 GO SET UP TO GO TO IEAVTRTM 19132802 DROP TRAKAREA 19182802 SPACE 2 19232802 *********************************************************************** 19282802 * * 19332802 * THE FOLLOWING CODE SETS THE INTERFACE TO IEAVTRTM WHEN * 19382802 * IEAVTRT1 IS ENTERED BY THE SVC FLIH BECAUSE AN SVC WAS * 19432802 * ISSUED WHILE THE CPU WAS LOCKED OR IN SRB MODE * 19482802 * INPUT REGISTERS - * 19492802 * R15 - ENTRY POINT ADDRESS * 19502802 * * 19532802 *********************************************************************** 19582802 SPACE 2 19632802 SVCERR LR R10,R15 ENTRY POINT ADDRESS SET BY CALLRTM 19682802 USING SVCERR,R10 ESTABLISH ADDRESSABILITY 19732802 LA FUNCTION,RT1WSVC FUNCTION CODE FOR SVCERR ENTRY POINT 19782802 L R8,PSALCCAV ADDRESS OF CURRENT LCCA 19832802 USING LCCA,R8 BASE FOR IHALCCA MAPPING MACRO 19882802 SR DUMPOPTS,DUMPOPTS PRE-SET REG - NO DUMPOPTS 19892802 SR EEDCHAIN,EEDCHAIN PRE-SET REG - NO EED'S 19902802 L R9,FLCSOPSW+CONST4 SECOND WORD OF SVC OLD PSW 19932802 LA R9,0(R9) INSTRUCTION COUNTER ADDRESS 19982802 S R9,LENSVC ADDRESS OF SVC INSTRUCTION ISSUED 20032802 CLC FLCSVCN,SVC13INC WAS SVC ISSUED SVC 13 - 20082802 * IS INTERRUPT CODE = 13 20092802 BNE SVCERR06 NO, COMPLETION CODE IS SET BY SVCFLIH 20132802 * IN FLAGSCC, BYPASS SVC 13 ACTION 20142802 * SVC INSTRUCTION ISSUED WAS SVC 13 20144802 C R9,RTMS13AD WAS SVC 13 ISSUED BY IEAVTRTM 20152802 BE SVCERR04 YES, GO OBTAIN COMPLETION CODE 20182802 * THE ABEND MACRO WAS ISSUED BY SOMEONE 20192802 L FLAGSCC,LCCASGPR+CONST4 COMPLETION CODE FROM ABEND 20232803 * MACRO (REG1) @YA02598 20302803 L R11,DMPOMASK MASK TO CHECK FOR PRESENCE OF DMPOPTS 20382802 NR R11,FLAGSCC ARE DUMPOPTS PRESENT 20432802 BZ SVCERR06 NO, GO SET UP IEAVTRTM REGISTERS 20482802 L DUMPOPTS,LCCASGPR ADDR OF DUMPOPTS FROM ABEND MACRO(R0) 20532803 * @YA02598 20552803 B SVCERR06 GO SET UP IEAVTRTM REGISTERS 20582802 SVCERR04 EQU * 20632802 L FLAGSCC,LCCASGPR+CONST4 COMPLETION CODE WAS IN REG 1 20682803 * @YA02598 20702803 L EEDCHAIN,LCCASGPR ADDR OF EED CHAIN OR 1 WAS IN REG 0 20732803 * @YA02598 20737803 LA R11,EEDNULL INDICATION OF MISSING EED 20742802 CR EEDCHAIN,R11 IS THEIR AN EED 20782802 BE SVCERR06 NO, GO SET RTM REGS FROM LCCA, PSA 20832802 USING EED,EEDCHAIN BASE FOR EED DSECT 20882802 LA SAVAREAP,EEDREGS ADDRESS OF REGISTERS IN EED 20932802 LA ADDRPSW1,EEDPSW1 ADDRESS OF FIRST PART OF PSW IN EED 20982802 LA ADDRPSW2,EEDINILC ADDRESS OF SECOND PART OF PSW IN EED 21032802 DROP EEDCHAIN 21082802 B SVCERR08 GO GET ADDRESS OF RECOVERY STACK 21132802 SVCERR06 EQU * 21182802 LA SAVAREAP,LCCASGPR ADDR OF REG SAVE AREA IN LCCA 21232803 * @YA02598 21252803 LA ADDRPSW1,FLCSOPSW ADDRESS OF FIRST PART OF PSW 21282802 LA ADDRPSW2,PSAESPSW ADDR OF SECOND PART OF PSW 21332802 SVCERR08 L TRAKAREA,PSASSTK ADDR OF MISCELANEOUS RECOVERY STACK 21382802 SR RBADDR,RBADDR NO RB ADDRESS 21392802 B GOTORTM GO SET UP TO GO TO IEAVTRTM 21432802 SPACE 2 21482802 *********************************************************************** 21532802 * * 21582802 * THE FOLLOWING CODE SETS THE INTERFACE TO IEAVTRTM WHEN * 21632802 * IEAVTRT1 IS ENTERED BECAUSE OF A PAGING ERROR * 21682802 * INPUT REGISTERS - * 21692802 * FLAGSCC (R1) - CALLRTM FLAGS AND COMPLETION CODE * 21702802 * TRAKAREA (R4) - ADDRESS OF A TCB OR 0 * 21712802 * DUMPOPTS (R5) - ADDRESS OF A RB OR 0 * 21716802 * TARGTCB (R3) - ADDRESS OF DUMPOPTS * 21722802 * SAVAREAP (R13) - ADDRESS OF A SAVE AREA * 21724802 * R14 - RETURN ADDRESS * 21726802 * R15 - ENTRY POINT ADDRESS * 21728802 * * 21732802 *********************************************************************** 21782802 SPACE 2 21832802 PGIOERR STM R0,R15,CONST8(SAVAREAP) SAVE CALLERS REGISTERS 21882802 LA SAVAREAP,CONST8(SAVAREAP) SAVE ADDR PONTS TO R0 21892802 LR R10,R15 ENTRY POINT ADDRESS SET BY CALLRTM 21932802 USING PGIOERR,R10 ESTABLISH ADDRESSABILITY 21982802 LA TARGTCB,0(TRAKAREA) TCB OR SRB ADDRESS PASSED IN R4 22032802 LA RBADDR,0(DUMPOPTS) RB ADDRESS OR 0 PASSED IN REGISTER 5 22082802 LA R15,SETFRR ADDR OF COMMON SETFRR MACRO 22142802 BALR R14,R15 GO TO COMMON SETFRR MACRO 22152802 USING RT1T6WDS,TRAKAREA 6 WORDS ARE MAPPED BY RT1T6WDS DSECT 22182802 LA FUNCTION,RT1WPGIO FUNCTION CODE FOR PAGING I/O ERROR 22232802 STC FUNCTION,RT1TENPT CHECKPOINT FUNCTION CODE 22282802 ST SAVAREAP,RT1TREGS CHECKPOINT ADDR OF CALLERS SAVE AREA 22332802 L R11,CCMASK MASK TO CHECK CALLRTM FLGS FOR CC 22382802 NR R11,FLAGSCC IS COMPLETION CODE PASSED 22432802 BZ PGIOERR5 YES, BYPASS DEFAULT COMPLETION CODE 22482802 O FLAGSCC,CC028 SET DEFAULT COMP CODE - X'028' 22582802 PGIOERR5 EQU * 22632802 SR DUMPOPTS,DUMPOPTS NO DUMPOPTS 22652802 SR EEDCHAIN,EEDCHAIN NO EED'S 22662802 B GOTORTM GO SET UP TO GO TO IEAVTRTM 22682802 DROP TRAKAREA 22732802 SPACE 2 22782802 *********************************************************************** 22832802 * * 22882802 * THE FOLLOWING CODE SETS THE INTERFACE TO IEAVTRTM WHEN * 22932802 * IEAVTRT1 IS ENTERED FOR AN ABTERM REQUEST IN THE CURRENT * 22982802 * ADDRESS SPACE * 23032802 * INPUT REGISTERS - * 23042802 * FUNCTION (R0) - TCB ADDRESS OR 0 * 23052802 * TARGTCB (R3) - ADDRESS OF DUMPOPTS * 23062802 * FLAGSCC (R1) - CALLRTM FLAGS AND COMPLETION CODE * 23072802 * R14 - RETURN ADDRESS * 23074802 * R15 - ENTRY POINT ADDRESS * 23076802 * * 23082802 *********************************************************************** 23132802 SPACE 2 23182802 CABTERM EQU * 23232802 USING CABTERM,R15 ENTRY POINT ADDR SET BY CALLRTM 23282802 LTR FUNCTION,FUNCTION IS A TCB ADDRESS PASSED 23332802 BNZ CABTERM1 NO, SAVE CALLERS REGISTERS IN 23382802 * CPU WSA, CALLER MUST BE DISABLED 23432802 * YES, GO SAVE CALLERS REGS IN LOCAL 23482802 * WSA, CALLER MUST HAVE LOCAL LOCK 23532802 L R15,PSALCCAV ADDRESS OF CURRENT LCCA 23582802 USING LCCA,R15 BASE FOR IHALCCA MAPPING MACRO 23632802 L R15,LCCACPUS ADDRESS OF CPU WORK/SAVE AREA 23682802 USING WSAC,R15 BASE FOR IHAWSAVT CLASS=CPU 23732802 L R15,WSACABTM ADDRESS OF CPU WSA FOR ABTERM 23782802 STM R0,R15,CONST8(R15) SAVE CALLERS REGISTERS 23832802 LA SAVAREAP,CONST8(R15) POINT TO R0 IN RIGHT REGISTER 23882802 BALR R15,0 ESTABLISH ADDRESS TO GO TO COMMON 23932802 USING *,R15 CODE 23982802 B CABTERM2 GO SET FUNCTION CODE FOR ENTRY POINT 24032802 CABTERM1 EQU * 24082802 L R15,PSAAOLD ADDRESS OF CURRENT ASCB 24132802 USING ASCB,R15 BASE FOR IHAASCB MAPPING MACRO 24182802 L R15,ASCBASXB ADDRESS OF CURRENT ASXB 24232802 USING ASXB,R15 BASE FOR IHAASXB MAPPING MACRO 24282802 L R15,ASXBSPSA ADDRESS OF LOCAL WORK/SAVE AREA 24332802 USING WSAL,R15 BASE FOR IHASWAVT CLASS=LOCAL 24382802 L R15,WSALABTM ADDRESS OF LOCAL WSA FOR ABTERM 24432802 STM R0,R15,CONST8(R15) SAVE CALLERS REGISTERS 24482802 LA SAVAREAP,CONST8(R15) POINT TO R0 IN RIGHT REG 24532802 CABTERM2 EQU * 24582802 BALR R10,0 ESTABLISH ADDRESSABILITY FOR COMMON 24632802 USING *,R10 CODE 24682802 DROP R15 24732802 LA R15,SETFRR ADDR OF COMMON SETFRR MACRO 24892802 BALR R14,R15 GO TO COMMON SETFRR MACRO 24902802 USING RT1T6WDS,TRAKAREA 6 WORDS ARE MAPPED BY RT1T6WDS DSECT 24932802 ST SAVAREAP,RT1TREGS CHECKPOINT ADDR OF REGISTER SAVE AREA 24982802 SR DUMPOPTS,DUMPOPTS PRE-SET REG - NO DUMPOPTS 25032802 L R11,DMPOMASK MASK TO CHECK CALLRTM FLAGS FOR 25082802 * PRESENCE OF DUMPOPTS 25132802 NR R11,FLAGSCC ARE DUMPOPTS PRESENT 25182802 BZ CABTERM6 NO, LEAVE DUMPOPTS REISTER = TO ZERO 25232802 LA DUMPOPTS,0(TARGTCB) ADDR OF DUMPOPTS IN PROPER REGISTER 25282802 CABTERM6 EQU * 25382802 LR TARGTCB,FUNCTION TCB ADDR OR 0 IN PROPER REGISTER 25432802 LA TARGTCB,0(TARGTCB) CLEAR HIGH ORDER BIT 25442802 LA FUNCTION,RT1WABT1 FUNCTION CODE FOR ABTERM REQUEST IN 25443202 * CURRENT ADDRESS SPACE 25443602 STC FUNCTION,RT1TENPT CHECKPOINT FUNCTION CODE 25444002 SR EEDCHAIN,EEDCHAIN NO EED'S 25452802 SR RBADDR,RBADDR NO RB ADDRESS 25462802 B GOTORTM GO SET UP TO GO TO IEAVTRTM 25482802 SPACE 2 25532802 *********************************************************************** 25582802 * * 25632802 * THE FOLLOWING CODE SETS THE INTERFACE TO IEAVTRTM WHEN * 25682802 * IEAVTRT1 IS ENTERED TO TERMINATE AN ADDRESS SPACE * 25732802 * INPUT REGISTERS - * 25742802 * FLAGSCC (R1) - CALLRTM FLAGS AND COMPLETION CODE * 25752802 * TARGASID (R2) - ASID * 25776802 * SAVAREAP (R13) - ADDRESS OF A SAVE AREA * 25778802 * R14 - RETURN ADDRESS * 25780802 * R15 - ENTRY POINT ADDRESS * 25781202 * * 25782802 *********************************************************************** 25832802 SPACE 2 25882802 MEMTERM STM R0,R15,CONST8(SAVAREAP) SAVE CALLERS REGISTERS IN SAVE 25932802 * AREA PROVIDED BY HIM 25982802 LA R8,CONST8(SAVAREAP) ADDR POINTS TO R0 25992802 LR R10,R15 ENTRY POINT ADDRESS 26032802 USING MEMTERM,R10 ESTABLISH ADDRESSABILITY 26082802 MEMTERM2 SETLOCK OBTAIN,TYPE=DISP,MODE=UNCOND, *26182802 RELATED=(MEMTERM,IEAVTRT1(RT1EXITH)) 26232802 LA FUNCTION,RT1WMEMT FUNCTION CODE FOR MEMORY TERMINATION 26282802 LA R15,SETFRR ADDR OF COMMON SETFRR MACRO 26342802 BALR R14,R15 GO TO COMMON SETFRR MACRO 26352802 USING RT1T6WDS,TRAKAREA 6 WORDS ARE MAPPED BY RT1T6WDS DSECT 26382802 LTR R13,R13 WAS DISP LOCK OBTAINED BY IEAVTRT1 26432802 BNZ MEMTERM4 NO, WAS HELD PRIOR TO OUR REQUEST 26482802 OI RT1TACQR,RT1TDISP YES, INDICATE LOCK MUST BE FREED AT 26532802 * EXIT 26582802 MEMTERM4 ST R8,RT1TREGS CHECKPOINT ADDR OF CALLERS SAVE AREA 26632802 STC FUNCTION,RT1TENPT CHECKPOINT FUNCTION CODE 26682802 LR SAVAREAP,R8 PASS ADDR OF CALLERS SAVE AREA TO RTM 26732802 L R11,ASIDMASK MASK TO CHECK CALLRTM FLGS FOR ASID 26782802 NR R11,FLAGSCC IS AN ASID PASSED 26832802 BNZ MEMTERM6 YES, PASSED IN TARGASID REG (R2) 26882802 SR TARGASID,TARGASID NO, ZERO TARGASID 26932802 MEMTERM6 EQU * 26982802 SR TARGTCB,TARGTCB NO TCB ADDRESS 26992802 SR DUMPOPTS,DUMPOPTS NO DUMPOPTS 27002802 SR EEDCHAIN,EEDCHAIN NO EED'S 27012802 SR RBADDR,RBADDR NO RB ADDRESS 27022802 B GOTORTM GO SET UP TO GO TO IEAVTRTM 27032802 DROP TRAKAREA 27082802 SPACE 2 27132802 *********************************************************************** 27182802 * * 27232802 * THE FOLLOWING CODE SETS THE INTERFACE TO IEAVTRTM WHEN * 27282802 * IEAVTRT1 IS ENTERED BY THE PCFLIH BECAUSE OF AN * 27332802 * UNANTICAPATED PROGRAM CHECK * 27382802 * INPUT REGISTERS - * 27392802 * FLAGSCC (R1) - CALLRTM FLAGS AND COMPLETION CODE * 27402802 * R15 - ENTRY POINT ADDRESS * 27412802 * * 27432802 *********************************************************************** 27482802 SPACE 2 27532802 TRASERR EQU * CONTINUE PROCESSING AS PROGCHECK 27540841 * IF DATERR OCCURED AND TRASING IS 27548841 * INDICATED THE ROUTINE WHICH TRASD 27556841 * SHOULD BE FRR PROTECTED AND ISSUE 27564841 * MEMTERM IF REQUIRED @ZA02390 27572841 PROGCK LR R10,R15 ENTRY POINT ADDRESS SET BY CALLRTM 27582802 USING PROGCK,R10 ESTABLISH ADDRESSABILITY 27632802 LA FUNCTION,RT1WPCFL FUNCTION CODE FOR PCFLIH ENTRY POINT 27682802 L R8,PSALCCAV ADDRESS OF CURRENT LCCA 27732802 USING LCCA,R8 BASE FOR IHALCCA MAPPING MACRO 27782802 L R11,CCMASK MASK FOR PRESENCE OF COMPLETION CODE 27832802 NR R11,FLAGSCC HAS COMPLETION CODE BEEN PASSED 27882802 BZ PROGCK02 YES, GO LOCATE PSW AND REGS FROM 27932802 * PRIMARY STATUS SAVE AREA 27982802 L R11,LCCAPINT PCFLIH ILC AND INTERRUPT CODE 28032802 N R11,ICMASK ISOLATE INTERRUPT CODE IN LOW 2 BYTES 28082802 LA R15,BUILDCC ADDR OF RTN TO BUILD COMPCODE 28132802 BALR R14,R15 GO BUILD COMPCODE FROM INTERRUPT CODE 28142802 OR FLAGSCC,R11 COMP CODE AND CALLRTM FLAGS - FLAGSCC 28182802 LA SAVAREAP,LCCAPGR2 REGISTERS AT TIME OF INTERRUPT ARE 28332802 * IN SECONDARY STATUS SAVE AREA 28382802 LA ADDRPSW1,LCCAPPSW FIRST PART OF PSW IN SECONDARY AREA 28432802 LA ADDRPSW2,LCCAPINT SECOND PART OF PSW IN SECONDARY AREA 28482802 B PROGCK06 GO LOCATE PCFLIH RECOVERY STACK 28532802 PROGCK02 EQU * COMPLETION CODE HAS BEEN SET BY 28582802 * CALLRTM MACRO IN FLAGSCC 28632802 L R11,CCMSKFFF MASK FOR COMPLETION CODE = FFF 28682802 NR R11,FLAGSCC ISOLATE COMPLETION CODE 28732802 C R11,CCMSKFFF IS COMPLETION CODE = FFF 28782802 BNE PROGCK04 NO, GO LOCATE PSW AND REGS, CC OK 28832802 LH R11,FLCPICOD YES, GET HARDWARE STORED INTERRUPT 28882802 * CODE 28932802 LA R15,BUILDCC ADDR OF RTN TO BUILD COMPCODE 28982802 BALR R14,R15 GO BUILD COMPCODE FROM INTERRUPT CODE 28992802 X FLAGSCC,CCMSKFFF ZERO PASSED FFF COMPLETION CODE 29032802 OR FLAGSCC,R11 INSERT COMP CODE BUILT FROM INTERRUPT 29082802 * CODE 29084802 O FLAGSCC,CCMASK INDICATE RTM ASSIGNED COMPLETION CODE 29092802 PROGCK04 EQU * 29182802 LA SAVAREAP,LCCAPGR1 REGISTERS AT TIME OF INTERRUPT ARE 29232802 * IN PRIMARY STATUS SAVE AREA 29282802 LA ADDRPSW1,FLCPOPSW FIRST PART OF PSW IN PRIMARY AREA 29332802 LA ADDRPSW2,PSAEPPSW SECOND PART OF PSW 29382802 PROGCK06 EQU * 29432802 L TRAKAREA,PSAPSTK ADDRESS OF PCFLIH RECOVERY STACK 29482802 SR DUMPOPTS,DUMPOPTS NO DUMPOPTS 29492802 SR EEDCHAIN,EEDCHAIN NO EED'S 29502802 SR RBADDR,RBADDR NO RB ADDRESS 29512802 B GOTORTM GO SET UP TO GO TO IEAVTRTM 29532802 DROP R8 29582802 SPACE 2 29632802 *********************************************************************** 29682802 * * 29732802 * THE FOLLOWING CODE SETS THE INTERFACE TO IEAVTRTM WHEN * 29782802 * IEAVTRT1 IS ENTERED TO PROCESS A CROSS ADDRESS SPACE ABTERM * 29832802 * REQUEST * 29882802 * INPUT REGISTERS - * 29892802 * FUNCTION (R0) - TCB ADDRESS * 29902802 * FLAGSCC (R1) - CALLRTM FLAGS AND COMPLETION CODE * 29912802 * TARGASID (R2) - ASID * 29922802 * TARGTCB (R3) - ADDRESS OF DUMPOPTS * 29924802 * SAVAREAP (R13) - ADDRESS OF A SAVE AREA * 29926802 * R14 - RETURN ADDRESS * 29928802 * R15 - ENTRY POINT ADDRESS * 29930802 * * 29932802 *********************************************************************** 29982802 SPACE 2 30032802 XABTERM STM R0,R15,CONST8(SAVAREAP) SAVE CALLERS REGISTERS IN SAVE 30082802 * AREA PROVIDED BY HIM 30132802 LA R8,CONST7(SAVAREAP) ADDRESS POINTS TO WORK BYTE IN 30142802 * SAVE AREA 30152802 LR R10,R15 ENTRY POINT ADDRESS SET BY CALLRTM 30182802 USING XABTERM,R10 ESTABLISH ADDRESSABILITY 30232802 SR DUMPOPTS,DUMPOPTS PRE-SET REG - NO DUMPOPTS PRESENT 30242802 L R11,DMPOMASK MASK TO CHECK CALLRTM FLAGS FOR 30252802 * PRESENCE OF DUMPOPTS 30262802 NR R11,FLAGSCC ARE DUMPOPTS PRESENT 30272802 BZ XABTERM1 NO, LEAVE DUMPOPTS REGISTER = ZERO 30276802 LA DUMPOPTS,0(TARGTCB) ADDR OF DUMPOPTS IN PROPER REGISTER 30278802 XABTERM1 EQU * 30281202 LR TARGTCB,FUNCTION ADDRESS OF PASSED TCB OR ZERO 30282802 LA TARGTCB,0(TARGTCB) CLEAR HIGH ORDER BIT 30332802 LA R13,CONST4 PRE-SET LOCK MGR RETURN CODE REGISTER 30432802 * TO 'LOCK ALREADY HELD' RETURN CODE 30482802 STOSM 0(R8),SYSMSK00 STORE SYSTEM MASK IN WORK AREA PART 30532802 * OF SAVE AREA 30542802 TM 0(R8),SYSMSK03 IS CALLER PHYSICALLY DISABLED 30582802 BNO XABTERM3 YES, BY PASS SETLOCK REQUEST FOR LOCK 30632802 XABTERM2 SETLOCK OBTAIN,TYPE=LOCAL,MODE=UNCOND, *30682802 RELATED=(ADDRSPACE,IEAVTRT1(RT1EXITI)) 30732802 XABTERM3 EQU * 30782802 LA R15,SETFRR ADDR OF COMMON SETFRR MACRO 30842802 BALR R14,R15 GO TO COMMON SETFRR MACRO 30852802 USING RT1T6WDS,TRAKAREA 6 WORDS ARE MAPPED BY RT1T6WDS DSECT 30882802 LTR R13,R13 DID IEAVTRT1 OBTAIN LOCAL LOCK 30932802 BNZ XABTERM5 NO, LOCK HELD ON ENTRY 30982802 OI RT1TACQR,RT1TLLCK YES, INDICATE AS ACQUIRED RESOURCE - 31032802 * MUST BE FREED DURING EXIT PROCESSING 31082802 XABTERM5 LA SAVAREAP,CONST1(R8) ADDR OF CALLERS SAVE AREA IN PROPER 31132802 * REGISTER 31182802 ST SAVAREAP,RT1TREGS CHECKPOINT ADDR OF CALLERS SAVE AREA 31232802 LA FUNCTION,RT1WXMAB FUNCTION CODE FOR CROSS ADDRESS SPACE 31282802 * ABTERM 31332802 STC FUNCTION,RT1TENPT CHECKPOINT FUNCTION CODE 31382802 SR EEDCHAIN,EEDCHAIN NO EED'S 31692802 SR RBADDR,RBADDR NO RB ADDRESS 31702802 B GOTORTM GO SET UP TO GO TO IEAVTRTM 31732802 DROP TRAKAREA 31782802 SPACE 2 31832802 *********************************************************************** 31882802 * * 31932802 * THE FOLLOWING CODE SETS THE INTERFACE TO IEAVTRTM WHEN * 31982802 * IEAVTRT1 IS ENTERED BY THE SRB DISPATCHER FOR CROSS ADDRESS * 32032802 * SPACE ABTERM REENTRY. IEAVTRT1 WAS PREVIOUSLY ENTERED, AT * 32082802 * XABTERM, FOR AN ABTERM REQUEST WITH AN ASID. THIS ENTRY IS * 32132802 * THE RESULT OF IEVATRTM'S PROCCESSING TO GET THE RTM INTO THE * 32182802 * ADDRESS SPACE ASSOCIATED WITH THE ASID SUPPLIED ON THE * 32232802 * ORIGINAL ABTERM REQUEST * 32282802 * INPUT REGISTERS - * 32292802 * FUNCTION (R0) - ADDRESS OF SRB * 32302802 * * 32332802 *********************************************************************** 32382802 SPACE 2 32432802 IEAVTRTX BALR R10,0 ESTABLISH 32482802 USING *,R10 ADDRESSABILITY 32532802 LR R8,FUNCTION ADDRESS OF PASSED SRB 32582802 USING SRB,R8 BASE FOR IHASRB MAPPING MACRO 32632802 LA FUNCTION,RT1WABT3 FUNCTION CODE FOR ABTERM REENTRY 32682802 LA R15,SETFRR ADDR OF COMMON SETFRR MACRO 32742802 BALR R14,R15 GO TO COMMON SETFRR MACRO 32752802 USING RT1T6WDS,TRAKAREA 6 WORDS ARE MAPPED BY RT1T6WDS DSECT 32782802 STC FUNCTION,RT1TENPT CHECKPOINT FUNCTION CODE 32832802 L R9,SRBPARM ADDRESS OF PARAMETERS SET BY IEAVTRTM 32882802 USING XABRREGS,R9 XABRREGS MAPS IEAVTRTM REGS 0-6 32932802 XABRT3 SETLOCK OBTAIN,TYPE=LOCAL,MODE=UNCOND, *33632802 RELATED=(ADDRSPACE,IEAVTRT1(RT1EXITQ)) 33682802 OI RT1TACQR,RT1TLLCK INDICATE LOCAL LOCK OBTAINED - MUST 33732802 * BE FREED IN EXIT PROCESSING 33782802 * OBTAIN LOCAL WORK/SAVEAREA FOR ABTERM 33784802 L SAVAREAP,PSAAOLD ADDRESS OF CURRENT ASCB 33786802 USING ASCB,SAVAREAP BASE FOR IHAASCB MAPPING MACRO 33788802 L SAVAREAP,ASCBASXB ADDRESS OF CURRENT ASXB 33790802 USING ASXB,SAVAREAP BASE FOR IHAASXB MAPPING MACRO 33791202 L SAVAREAP,ASXBSPSA ADDRES OF LOCAL WORK/SAVE AREA 33791602 USING WSAL,SAVAREAP BASE FOR IHAWSA MACRO, CLASS=LOCAL 33792002 L SAVAREAP,WSALABTM ADDRESS OF LOCAL WSA FOR ABTERM 33792102 DROP SAVAREAP 33792402 L R14,FLCCVT ADDRESS OF CVT FROM PSA 33798702 USING CVTMAP,R14 BASE FOR CVT MAPPING MACRO 33801802 L R14,CVTSRBRT ADDRESS OF SRB DISPATCHER - EXIT 33804902 * ADDRESS FOR SRB'S 33808002 DROP R14 33811102 ST R14,CONST64(SAVAREAP) SET EXIT ADDRESS IN REG 14 33816202 * SLOT OF SAVE AREA 33820202 LA SAVAREAP,CONST8(SAVAREAP) SAVE ADDR POINTS TO R0 33820402 ST SAVAREAP,RT1TREGS CHECKPOINT ADDRESS OF SAVE AREA 33823502 MVC 0(LEN7REGS,SAVAREAP),XABRREGS SAVE REGS IN LOCAL 33825502 * WSA SO QUICK CELL 33825902 * CAN BE FREED 33826302 LR R11,TRAKAREA PRESERVE ADDRESS OF 6 WORDS, 33826402 * FREECELL DESTROYS REGS 0-4 33826502 L R1,RT1CPOOL CELL POOL ID USED TO OBTAIN CELL 33837702 FREECELL CPID=(R1),CELL=(R8),SAVE=NO,BRANCH=YES 33847702 DROP R8 33848102 DROP R9 33848502 LA FUNCTION,RT1WABT3 RESTORE FUNCTION CODE 33848902 LM FLAGSCC,EEDCHAIN,CONST4(SAVAREAP) ORGINAL CALLRTM REGS 33849002 LR TRAKAREA,R11 CURRENT ADDRESS OF 6 WORDS 33859102 SR RBADDR,RBADDR NO RB ADDRESS 33860402 B GOTORTM GO SET UP TO GO TO IEAVTRTM 33871602 DROP TRAKAREA 33882802 SPACE 2 33932802 *********************************************************************** 33982802 * * 34032802 * THE FOLLOWING CODE SETS THE INTERFACE TO IEAVTRTM WHEN * 34082802 * IEAVTRT1 IS ENTERED BY MCH OR ACR FOR MACHINE CHECK REENTRY * 34132802 * * 34182802 *********************************************************************** 34232802 SPACE 2 34282802 IEAVTRTN BALR R10,0 ESTABLISH 34332802 USING *,R10 ADDRESSABILITY 34382802 LA FUNCTION,RT1WMCHR FUNCTION CODE FOR MACHINE CHK REENTRY 34432802 L TRAKAREA,PSAPSTK ADDRESS OF PCFLIH RECOVERY STACK 34482802 B GOTORTM GO SET UP TO GO TO IEAVTRTM 34532802 SPACE 2 36382802 *********************************************************************** 36432802 * * 36442802 * COMMON ROUTINE FOR INTERFACING WITH IEAVTRTM * 36452802 * * 36462802 *********************************************************************** 36472802 SPACE 2 36482802 GOTORTM EQU * 36492802 BALR R10,0 ESTABLISH 36502802 USING *,R10 ADDRESSABILITY 36512802 TM PSASUP2,PSAACR WAS ACR IN CONTROL AT TIME OF ERROR 36522802 BZ GOTORTM2 NO, CONTINUE ROUTING TO IEAVTRTM 36532802 L R15,ACRENTRY YES, GET ADDR OF ACR'S RECOVERY RTN 36542802 BALR R14,R15 GO TO ACR'S RECOVERY ROUTINE 36552802 GOTORTM2 EQU * 36562802 BALR R10,0 ESTABLISH 36572802 USING *,R10 ADDRESSABILITY 36582802 L R15,RTMENTRY ENTRY POINT ADDRESS OF IEAVTRTM 36592802 BALR R14,R15 GO TO IEAVTRTM 36602802 SPACE 2 36612802 *********************************************************************** 36622802 * * 36632802 * IF IEAVTRTM RETURNS TO IEAVTRT1, IT WILL RETURN HERE * 36642802 * * 36652802 *********************************************************************** 36662802 SPACE 2 36672802 IEAVTRTZ EQU * 36682802 BALR R10,0 ESTABLISH 36692802 USING *,R10 ADDRESSABILITY 36702802 CLM FUNCTION,LOWBYTE,RETYEXIT IS EXIT TYPE RETRY 36712802 BNE RT1EXIT2 NO, GO CHECK FOR EXIT TO DISPATCHER 36722802 LM R0,R15,0(R1) YES, LOAD RETRY REGISTERS 36732802 BR R15 GO TO RETRY ROUTINE 36742802 RT1EXIT2 EQU * 36752802 CLM FUNCTION,LOWBYTE,DISPEXIT IS EXIT TYPE DISPATCHER 36762802 BNE RT1EXIT4 NO, GO CHECK FOR EXIT TO SRB DISP 36772802 L R15,FLCCVT ADDRESS OF CVT 36782802 USING CVTMAP,R15 BASE FOR CVT MAPPING MACRO 36792802 L R15,CVT0DS ADDRESS OF DISPATCHER 36802802 BR R15 EXIT TO DISPATCHER 36812802 DROP R15 36822802 RT1EXIT4 EQU * 36832802 CLM FUNCTION,LOWBYTE,SRBEXIT IS EXIT TYPE SRB 36842802 BNE RT1EXIT6 NO, GO CHECK FOR EXIT TO EXIT PROLOG 36852802 L R15,FLCCVT ADDRESS OF CVT 36862802 USING CVTMAP,R15 BASE FOR CVT MAPPING MACRO 36872802 L R15,CVTSRBRT ADDRESS OF SRB RETURN POINT 36882802 BR R15 GO RETURN TO SRB DISPATCHER 36892802 DROP R15 36902802 RT1EXIT6 EQU * 36912802 CLM FUNCTION,LOWBYTE,EXPROEX IS EXIT TYPE EXIT PROLOGUE 36922802 BNE RT1EXIT8 NO, GO CHECK FOR RESTART RESUME EXIT 36932802 L R14,PSATOLD ADDRESS OF CURRENT TCB @YM06733 36934802 USING TCB,R14 BASE FOR TCB PROPER @YM06733 36936802 LM R0,R1,TCBGRS0 RESTORE REG0 AND REG1 @YM06733 36938802 L R15,TCBGRS15 RESTORE REG15 @YM06733 36940802 L R14,FLCCVT ADDRESS OF CVT @YM06733 36942802 USING CVTMAP,R14 BASE FOR CVT MAPPING MACRO @YM06733 36952802 L R14,CVTEXPRO ADDRESS OF EXIT PROL ROUTINE @YM06733 36962802 BR R14 GO TO EXIT PROLOGUE @YM06733 36972802 DROP R14 @YM06733 36982802 RT1EXIT8 EQU * 36992802 CLM FUNCTION,LOWBYTE,RESUMEEX IS EXIT TYPE RESTART RESUME 37002802 BNE RT1EXITC NO, GO RETURN TO CALLER OR MCH 37012802 L R15,PSALCCAV YES,LOCATE CURRENT LCCA 37022802 USING LCCA,R15 BASE FOR IHALCCA MAPPING MACRO 37032802 LA R15,LCCARSGR LOCATE RESTART ERROR REGS IN LCCA 37042802 LM R0,R15,0(R15) LOAD RESTART ERROR REGS 37052802 LPSW PSARSPSW LOAD RESTART OLD PSW 37062802 DROP R15 37072802 RT1EXITC EQU * EXIT TYPE IS EITHER RETURN TO 37082802 * CALLER (RETEXIT) OR RETURN TO 37092802 * MACHINE CHECK HANDLER (MCHEXIT) 37102802 * LOCATE ADDRESS OF 6 WORD WORK AREA SUPLIED BY FRR 37112802 L R15,PSACSTK ADDR OF CURRENT RECOVERY STACK 37122802 USING FRRS,R15 BASE FOR IHAFRRS MAPPING MACRO 37132802 L R15,FRRSCURR ADDRESS OF CURRENT FRR DATA 37142802 USING FRRSENTR,R15 BASE FOR FRR DATA MAPPING 37152802 LA R15,FRRSPARM ADDRESS OF FRR 6 WORDS 37162802 USING RT1T6WDS,R15 BASE FOR MAPPING DSECT 37172802 CLI RT1TENPT,RT1WABT3 WAS ORGINAL ENTRY 37182802 * 'CROSS ADDRESS SPACE ABTERM REENTRY' 37192802 BE RT1EXITP YES, GO FREE LOCAL LOCK AND RETURN 37202802 * TO SRB DISPATCHER 37212802 L R8,RT1TREGS ADDRESS OF REGISTER SAVE AREA 37222802 * (ADDR POINTS TO R0 IN SAVE AREA) 37232802 CLM FUNCTION,LOWBYTE,MCHEXIT IS EXIT TYPE MCH 37242802 BNE RT1EXITE NO, GO SET UP REGISTERS FOR RETURN 37252802 ST FLAGSCC,CONST4(R8) YES, STORE PASSED PARM IN REG 1 37262802 * SLOT OF SAVE AREA SO COMMON EXIT 37272802 * PROCESSING CAN BE DONE 37282802 RT1EXITE EQU * 37284802 LA R9,0(R8) ADDRESS OF REGISTER SAVE AREA 37296002 BCTR R9,0 ADDR OF BYTE BEFORE R0 IN SAVEAREA 37312802 * - USE AS WORK AREA TO TEST FOR 37314802 * RESOURCES ACQUIRED BY IEAVTRT1 37323102 MVC 0(L'RT1TACQR,R9),RT1TACQR RESOURCES ACQUIRED FLAGS 37333502 SETFRR D,WRKREGS=(R11,R12) DELETE IEAVTRT1'S FRR 37363502 TM 0(R9),RT1TDISP DID IEAVTRT1 ACQUIRE DISP LOCK 37393502 BZ RT1EXITH NO, GO CHECK FOR LOCAL LOCK 37423502 RT1EXITG SETLOCK RELEASE,TYPE=DISP, *37482802 RELATED=(MEMTERM,IEAVTRT1(MEMTERM2)) 37502802 RT1EXITH TM 0(R9),RT1TLLCK DID IEAVTRT1 ACQUIRE LOCAL LOCK 37532802 BZ RT1EXITJ NO, GO RESTORE REGS AND RETURN 37552802 RT1EXITI SETLOCK RELEASE,TYPE=LOCAL, *37582802 RELATED=(ADDRSPACE,IEAVTRT1(XABTERM2)) 37632802 RT1EXITJ LM R0,R15,0(R8) RESTORE CALLERS REGISTERS 37652802 BR R14 RETURN TO CALLER 37682802 RT1EXITP EQU * 37702802 SETFRR D,WRKREGS=(R11,R12) DELETE IEAVTRT1'S FRR 37732802 RT1EXITQ SETLOCK RELEASE,TYPE=LOCAL, *37782802 RELATED=(ADDRSPACE,IEAVTRT1(XABRT3)) 37802802 L R14,FLCCVT ADDRESS OF CVT FORM PSA 37832802 USING CVTMAP,R14 BASE FOR CVT MAPPING MACRO 37852802 L R14,CVTSRBRT ADDRESS OF SRB DISPATCHER - EXIT 37882802 * ADDRESS FOR SRB'S 37932802 DROP R14 37962802 BR R14 RETURN TO SRB DISPATCHER 37982802 EJECT 38002802 *********************************************************************** 38032802 * * 38082802 * SUBROUTINE TO CONVERT INTERRUPT CODE TO COMPLETION CODE * 38102802 * INPUT: - R11 INTERRUPT CODE IN LOW ORDER 2 BYTES * 38132802 * - R14 RETURN ADDRESS * 38152802 * - R15 ENTRY POINT ADDRESS * 38182802 * OUTPUT: - R11 COMPLETION CODE * 38232802 * REGS USED - R11 WORK REGISTER * 38252802 * - R15 BASE REGISTER * 38282802 * * 38302802 *********************************************************************** 38332802 SPACE 2 38382802 BUILDCC EQU * 38402802 USING BUILDCC,R15 ENTRY POINT ADDRESS SETUP BY CALLER - 38432802 * USE AS BASE REGISTER 38452802 LTR R11,R11 TEST INTERRUPT CODE FOR VALIDITY 38482802 BNP BUILDCC4 INTERRUPT CODE = TO OR < THAN ZERO 38512802 * IS INVALID, GO CONVERT TO C0D CC 38542802 CH R11,IC16 COMPARE INTERRUPT CODE PASSED TO 16 38582802 BL BUILDCC2 CONVERT INTERRUPT CODE TO 0CX SERIES 38594302 CH R11,IC19 COMPARE PASSED INTERRUPT CODE TO 19 38623302 BH BUILDCC4 INTERRUPT CODE > 19 IS INVALID, 38682802 * GO CONVERT TO COD COMPLETION CODE 38702802 * INTERRUPT CODE IS 16,17,18 OR 19 38732802 SH R11,CONST16 INTERRUPT CODE IS 0, 1, 2 OR 3 - 38752802 * USE AS INDEX TO SELECT COMPCODE 38782802 IC R11,CCTABLE(R11) SELECT CONDITION CODE THAT MATCHES 38832802 * INTERRUPT CODE 38852802 B BUILDCC8 GO SET UP RETURN TO CALLER 38882802 BUILDCC2 O R11,CC0C0 PREFIX INTERRUPT CODE WITH 0C 38902802 B BUILDCC8 GO SET UP RETURN TO CALLER 38932802 BUILDCC4 L R11,CCC0D CONVERT INVALID INTERRUPT CODE TO 38982802 * C0D COMPLETION CODE 39002802 BUILDCC8 SLL R11,CONST12 COMPLETION CODE IN BITS 8-19 39032802 BR R14 RETURN TO CALLER 39052802 SPACE 2 39082802 SETFRR EQU * COMMON SETFRR MACRO FOR RT1 39132802 USING SETFRR,R15 LINKAGE TO THIS POINT IS BALR 14,15 39152802 SETFRR A,FRRAD=RT1FRRAD,PARMAD=(TRAKAREA),WRKREGS=(R12,R9) 39182802 BR R14 RETURN TO CALLER 39202802 *********************************************************************** 39232802 * * 39282802 * THE FOLLOWING IS THE FRR FOR IEAVTRT1 * 39302802 * * 39332802 *********************************************************************** 39352802 SPACE 2 39382802 RT1FRR EQU * 39432802 LR R10,R15 ENTRY ADDRESS SET BY RTM 39434802 USING RT1FRR,R10 ESTABLISH ADDRESSABILITY 39482802 USING SDWA,R1 ADDR OF SDWA(RTCT) BASE FOR MAP MACRO 39502802 L TRAKAREA,SDWAPARM ADDRESS OF FRR 6 WORDS 39532802 USING RT1T6WDS,TRAKAREA BASE FOR RT1T6WDS MAPPING DSECT 39582802 LR R5,R14 PRESERVE RETURN ADDRESS TO RTS - 39602802 * R14 IS DESTROYED BY SETRP 39632802 TM SDWAERRA,SDWARKEY WAS NEW ERROR A RESTART ERROR 39652802 BO RT1FRR1 YES, SET UP FOR PERCOLATION 39682802 TM SDWAERRA,SDWATEXC WAS NEW ERROR A DATERR 39732802 BO RT1FRR1 YES, SET UP FOR PERCOLATION 39752802 TM RT1TACQR,RT1TRETY IS THIS THE 2ND ENTRY INTO THIS FRR 39782802 BO RT1FRR1 YES, SET UP FOR PERCOLATION 39802802 * NO, SET UP RETRY TO EXIT PROCESSING 39832802 LA FUNCTION,RT1RET SET EXIT TYPE TO RETURN-TO-CALLER 39882802 ST FUNCTION,SDWASR00 STORE EXIT TYPE FOR RETRY 39892802 L R11,RTZADDR DETERMINE RETRY ADDRESS 39932802 SETRP RETADDR=(R11),RECORD=YES,RECPARM=RT1ID,RC=4 39952802 OI RT1TACQR,RT1TRETY TURN ON RT1'S RETRY INDICATOR 39982802 B RT1FRR4 GO TO RETURN TO IEAVTRTS 40032802 RT1FRR1 EQU * PERCOLATION PATH 40052802 TM RT1TACQR,RT1TDISP WAS DISP LOCK OBTAINED BY RT1 40082802 BZ RT1FRR2 NO, GO CHECK FOR LOCAL LOCK 40102802 OI SDWAACF3,SDWADISP YES, REQUEST FREEING OF DISP LOCK 40132802 RT1FRR2 TM RT1TACQR,RT1TLLCK WAS LOCAL LOCK OBTAINED BY RT1 40182802 BZ RT1FRR3 NO, GO REQUEST PERCOLATION 40202802 OI SDWAACF4,SDWAFLLK YES, REQUEST FREEING OF LOCAL LOCK 40242802 RT1FRR3 EQU * REQUEST PERCOLATION 40262802 SETRP RECORD=YES,RECPARM=RT1ID,RC=0 40282802 RT1FRR4 LR R14,R5 RESTORE RETURN ADDRESS TO IEAVTRTS 40332802 BR R14 RETURN TO RTS 40342802 EJECT 40392802 *********************************************************************** 40412802 * * 40432802 * CONSTANTS * 40482802 * * 40492802 *********************************************************************** 40542802 SPACE 2 40562802 CNOP 0,8 40582802 IEAVPS3 DC X'000200FF00000300' RESTART 40632802 RT1FRRAD DC A(RT1FRR) ADDR OF IEAVTRT1 FRR FOR SETFRR MACRO 40642802 RTZADDR DC A(IEAVTRTZ) ADDRESS OF RT1'S EXIT PROCESSING 40662802 RTHFRRAD DC V(RTHFRR) ADDR OF RTH'S FRR FOR SETFRR MACRO 40672802 RTMENTRY DC V(IEAVTRTM) ENTRY POINT ADDRESS OF IEAVTRTM 40692802 ACRENTRY DC V(IEAVTCR1) ADDR OF ACR'S RECOVERY ROUTINE 40702802 CCMASK DC X'10000000' COMPLETION CODE MASK-TEST CALLRTM FLG 40712802 ICMASK DC X'0000FFFF' INTERRUPT CODE MASK-ISOLATE FROM ILC 40732802 CCMSKFFF DC X'00FFF000' COMP CODE MASK-SYS COMP CODE = FFF 41232802 IC16 DC H'16' INTERRUPT CODE OF 16 41732802 IC19 DC H'19' INTERRUPT CODE OF 19 42232802 CONST16 DC H'16' CONSTANT OF 16 - SUBTRACT FROM 42732802 * INTERRUPT CODE TO CREATE INDEX 43232802 * TO COMPLETION CODE (CCTABLE) 43732802 SVC13INC DC H'13' SVC 13 INTERRUPT CODE 44232802 DS 0F 44732802 CCTABLE DC X'C4C4D2D3' COMPLETION CODE TABLE TO MATCH 45232802 * INTERRUPT CODES 16,17,18,19 45732802 CC0C0 DC X'000000C0' PREFIX FOR INTERRUPT CODES TO CONVERT 46232802 * INTERRUPT CODE TO 0CX SERIES 46732802 CC0FC DC X'000FC000' TRASERR COMP CODE @ZA05351 46782841 CCC0D DC X'00000C0D' COMPLETION CODE C0D 47232802 CC028 DC X'00028000' PAGING I/O ERROR DEFAULT COMP CODE 47732802 ASIDMASK DC X'08000000' ASID MASK - TEST CALLRTM FLAGS 48232802 CC071 DC X'90071000' RESTART COMPLETION CODE, FLAG MASK 48732802 DMPOMASK DC X'20000000' MASK TO CHECK CALLRTM FLGS - DUMPOPTS 49232802 RT1CPOOL DC C'RT1',X'04' CELL POOL ID USED TO FREE QUICK CELL 49732802 LENSVC DC F'2' LENGTH OF A SVC INSTRUCTION 50232802 RTMS13AD DC V(IEAVTRTA) ADDRESS OF IEAVTRTM'S SVC 13 INSTR 50732802 RT1ID DC C'IEAVTRT1' MODULE NAME FOR RECORDING 51232802 DC C'IEAVTRT1' CSECT NAME FOR RECORDING 51732802 DC C'RT1FRR ' LABEL ON FRR ROUTINE FOR RECORDING 52232802 SPACE 2 52732802 * 53232802 * FUNCTION CODES TO IDENTIFY EXIT TYPE TO IEAVTRT1 53732802 * 54232802 RETYEXIT DC AL1(RT1RETRY) FUNCTION CODE FOR RETRY EXIT 54732802 DISPEXIT DC AL1(RT1DISP) FUNCTION CODE FOR DISPATCHER EXIT 55232802 SRBEXIT DC AL1(RT1SRBEX) FUNCTION CODE FOR SRB EXIT 55732802 EXPROEX DC AL1(RT1EXPRO) FUNCTION CODE FOR EXIT PROLOGUE EXIT 56232802 RESUMEEX DC AL1(RT1RESUM) FUNCTION CODE FOR RESTART RESUME EXIT 56732802 RETEXIT DC AL1(RT1RET) FUNCTION CODE FOR RET TO CALLER EXIT 57232802 MCHEXIT DC AL1(RT1MCHEX) FUNCTION CODE FOR MCH EXIT 57732802 EJECT 58232802 * 58732802 * MAPPING DSECTS USED BY IEAVTRT1 59232802 * 59732802 SPACE 2 60232802 RT1T6WDS DSECT MAP 6 WORDS ESTABLISHED BY SETFRR 60732802 SPACE 1 61232802 RT1TLPN DS X LOGICAL PHASE NUMBER 61732802 RT1TLPID DS X LOGICAL PHASE RECOVERY ROUTINE ID 62232802 RT1TENPT DS X ORIGINAL ENTRY POINT - FUNCTION CODE 62732802 RT1TACQR DS X RESOURCES ACQUIRED BY IEAVTRT1 63232802 RT1TDISP EQU X'80' DISPATCHER LOCK OBTAINED BY IEAVTRT1 63732802 RT1TLLCK EQU X'40' LOCAL LOCK OBTAINED BY IEAVTRT1 64232802 RT1TRETY EQU X'20' RT1'S FRR ENTERED ONCE AND RETRIED 64732802 RT1TREGS DS 5F REGISTER CHECKPOINT AREA 65232802 SPACE 4 65732802 EED DSECT , MAP EED(EXTENDED ERROR DESCRIPTOR) 66232802 * FOR REGISTERS AND PSW 66732802 EEDFWRDP DS F ADDRESS OF NEXT EED OR 0 67232802 EEDDES DS F DESCRIPTION OF CONTENTS OF EED 67732802 EEDERROR DS F DESCRIPTION OF ERROR @YM02626 68232802 EEDREGS DS 16F REGISTERS, 0-15 68732802 EEDPSW1 DS 2F FIRST PART OF PSW 69232802 EEDINILC DS 2F SECOND PART OF PSW 69732802 EEDNULL EQU 1 INDICATES MISSING EED 70232802 SPACE 4 70732802 XABRREGS DSECT , MAP IEAVTRTM REGS 0-6 ON CROSS 71232802 * ADDRESS SPACE ABTERM REENTRY 71732802 XABRREG0 DS F R0, FUNCTION - NOT USED 72232802 XABRREG1 DS F R1, FLAGSCC - USED 72732802 XABRREG2 DS F R2, TARGASID - USED 73232802 XABRREG3 DS F R3, TARGTCB - USED 73732802 XABRREG4 DS F R4, TRAKAREA - NOT USED 74232802 XABRREG5 DS F R5, DUMPOPTS - USED 74732802 XABRREG6 DS F R6, EEDCHAIN - USED 75232802 EJECT 75732802 *********************************************************************** 76232802 * * 76732802 * MAPPING MACROS * 77232802 * * 77732802 *********************************************************************** 78232802 SPACE 2 78732802 IHAPSA 79232802 EJECT 79732802 IHALCCAT 80232802 EJECT 80732802 IHALCCA 81232802 EJECT 81732802 CVT PREFIX=YES,DSECT=YES 82232802 EJECT 82732802 IHAASCB 83232802 EJECT 83732802 IHAASXB 84232802 EJECT 84732802 IHAWSAVT CLASS=LOCAL 85232802 EJECT 85732802 IHAWSAVT CLASS=CPU 86232802 EJECT 86732802 IHAFRRS 87232802 EJECT 87732802 IHASRB 88232802 EJECT 88732802 IHASDWA 89232802 EJECT @YM06733 89332802 IKJTCB @YM06733 89432802 END 89732802