*@LIST PUSH; 00060021 *@LIST OFF; 00070021 * /* 00080021 MACRO 00100021 EWAMAP 00150021 EWA DSECT 00200021 SPACE 1 00250021 **************************************************************** 00300021 * * 00350021 * THIS DSECT DESCRIBES THE ERROR PROCEDURE WORK AREA COMMON * 00400021 * SECTION WHICH IS INVOKED BY IECDERWA AS AN INNER MACRO. * 00410021 * IT IS GOTTEN BY THE I/O INTERRUPT HANDLER OR POST STATUS. * 00450021 * THE WORKAREA CONSISTS OF TWO SECTIONS: - THE COMMON * 00500021 * SECTION WHICH CONTAINS INDICATORS, COUNTERS, AND SENSE * 00550021 * INFORMATION - AND ERP DEPENDENT SECTIONS WHICH ARE AVAIL- * 00600021 * ABLE FOR ERP USE AS NEEDED. THE DEPENDENT SECTIONS ARE * 00650021 * INCLUDED BY IECDERWA VIA OPTIONS THROUGH THE MACRO CALL. * 00660021 * * 00700021 **************************************************************** 00750021 SPACE 1 00800021 EWAHDR DS 0F 00850021 EWAEXT DS A ADDRESS OF WORKAREA EXTENSION 00900021 EWAFLG1 DS XL1 FLAG BYTE 1 00950021 EWASLIS EQU X'80' W.A. INVOLVED IN RECOVERY SENSE 00960002 * EQU X'40' RESERVED @ZA16177 00970000 * EQU X'20' RESERVED 00978000 * EQU X'10' RESERVED 00986000 EWASCCD EQU X'0C' SIO CONDITION CODE 01002021 EWASCC3 EQU X'0C' CONDITION CODE 3 01004021 EWASCC2 EQU X'08' CONDITION CODE 2 01006021 EWASCC1 EQU X'04' CONDITION CODE 1 01008021 EWASCC0 EQU X'00' CONDITION CODE 0 01008421 EWADDMSG EQU X'02' ERP DEPENDENT DATA TO BE 01010021 * INCLUDED IN I/O ERROR MESSAGE 01020021 EWABDSNS EQU X'01' SENSE UNSUCCESSFUL 01050021 EWAFLG2 DS XL1 FLAG BYTE 2 01100021 EWAMDR EQU X'80' IF ON, MDR REQUEST 01102021 * IF OFF, OBR REQUEST 01102421 EWAWTEMP EQU X'40' ON - TEMPORARY WRITE ERROR 01104021 * COUNTER TO BE UPDATED IF 01106021 * DATA CHECK CONDITION 01108021 * OFF - TEMPORARY READ ERROR 01108121 * COUNTER TO BE UPDATED 01108221 EWACOVF EQU X'20' COUNTER OVERFLOW INDICATOR 01108321 * FOR STATISTICS UPDATE 01158321 EWADIR EQU X'10' DIR IN PROGRESS 01168302 EWARCBLT EQU X'08' OBR RECORD BUILT BY CALLER @G64SPLK 01208300 * EQU X'07' RESERVED @G64SPLK 01258300 EWAFLG3 DS XL1 FOR DEVICE DEPENDENT ERP USAGE 01308300 EWAJAM EQU X'80' 3800 PAPER JAM @Y40MPLG 01358300 EWASNSCT DS XL1 LOOP COUNT FOR SENSE FAILURE 01408300 EWASCTMX EQU X'FF' MAX # OF SENSES TRIED @ZA25026 01458300 EWASSTAT DS XL2 CSW STATUS ON SENSE OPERATION 02279921 * IF THIS IS A UNIT CHECK 02280721 EWACNTR1 DS XL1 COUNTERS FOR ERP USE 02281521 EWACNTR2 DS XL1 02281621 EWACNTR3 DS XL1 02285221 EWACNTR4 DS XL1 02288821 EWASTUP DS XL2 STATISTICS INFORMATION FOR 02292421 * USE IN STATISTICS UPDATE 02296021 EWAERPIB DS XL8 ERPIB BUILT BY CCH FOR CHANNEL 02299621 * ERRORS TO INDICATE WHETHER 02303221 * RETRY IS TO BE ATTEMPTED 02306821 ORG EWAERPIB 02310421 DS XL1 RESERVED 02314021 EWAUCB DS AL3 UCB ADDRESS 02317621 EWARGFG1 DS XL1 FLAG BYTE 02321221 EWACSIO EQU X'80' CSW STORED AFTER SIO 02324802 EWACINT EQU X'40' CSW STORED AFTER I/O INTERRUPT 02326802 EWACTIO EQU X'20' CSW STORED AFTER TEST I/O 02327202 EWACHIO EQU X'10' CSW STORED AFTER HALT I/O 02327602 * EQU X'08' RESERVED 02328002 EWACSNS EQU X'04' SENSE DATA WAS STORED 02328102 EWACCNT EQU X'02' CSW COUNT IS VALID 02328202 EWANORTY EQU X'01' NO RETRY INDICATOR 02328421 EWARGFG2 DS XL1 PROBABLE SOURCE INDICATORS 02332021 EWACCPU EQU X'80' CPU ERROR 02334002 EWACCHA EQU X'40' CHANNEL ERROR 02334402 EWACSCU EQU X'20' STORAGE CONTROL UNIT ERROR 02334802 EWACSTG EQU X'10' STORAGE ERROR 02335202 EWACCUE EQU X'08' CONTROL UNIT ERROR 02335302 * EQU X'07' RESERVED 02335402 EWAXCSW1 DS XL1 VALIDITY INDICATORS 02335621 EWACITF EQU X'80' INTERFACE ADDR IS VALID 02337602 * EQU X'60' RESERVED 02338002 EWACSQV EQU X'10' SEQUENCE CODE IS VALID 02338402 EWACUNS EQU X'08' UNIT STATUS IS VALID 02338802 EWACCMD EQU X'04' COMMAND ADDRESS IS VALID 02338902 EWACCHV EQU X'02' CHANNEL ADDRESS IS VALID 02339002 EWACDAV EQU X'01' DEVICE ADDRESS IS VALID 02339102 EWAXCSW2 DS XL1 TERMINATION & SEQUENCE CODES 02339221 EWACTEC EQU X'C0' TERMINATION CODE. 02341202 EWATER0 EQU X'00' INTERFACE DISCONNECT 02341602 EWATER1 EQU X'04' STOP, STACK, OR NORMAL TERM 02342002 EWATER2 EQU X'80' SELECTIVE RESET 02342402 EWATER3 EQU X'C0' SYSTEM RESET 02342502 * EQU X'30' RESERVED 02342602 EWACDIN EQU X'08' I/O ERROR ALERT 02342702 EWACSEQ EQU X'07' CHANNEL DEPENDENT SEQ. CODES 02354102 EWASEQ0 EQU X'00' 02364102 EWASEQ1 EQU X'01' 02364502 EWASEQ2 EQU X'02' 02364902 EWASEQ3 EQU X'03' 02365302 EWASEQ4 EQU X'04' 02365702 EWASEQ5 EQU X'05' 02369502 EWASEQ6 EQU X'06' 02371502 EWASEQ7 EQU X'07' 02371902 ORG EWAERPIB+L'EWAERPIB ' 02373402 EWACHA DS XL2 UNIT ADDRESS ON WHICH LAST 02377202 * I/O WAS STARTED 02388602 EWAFLGA DS XL1 FLAGS FOR IOS INTERNAL USE @ZA16177 02400000 EWAINIT EQU X'80' PATH VALID FOR SENSE @ZA16177 02420000 EWADONE EQU X'40' SENSE COMPLETE @ZA16177 02440000 EWAVLCHN EQU X'20' EWACHAIN FIELD IS VALID @ZA16177 02460000 * EQU X'10' RESERVED @G64JPLN 02480000 EWADDE EQU X'0F' BITS RESERVED FOR DEVICE DEPENDENT 02500000 * EXITS @G64JPLN 02520000 EWACPU DS XL1 CHANNEL SET ON WHICH I/O 02540000 * ERROR WAS ENCOUNTERED @G64APLK 02560000 EWADRCW DS 0A ADDR OF RECORD CONTROL TABLE (VALID 02580000 * ONLY IF EWARCBLT=1) @G64SPLK 02600000 EWADCNT DS XL1 NUMBER OF BYTES OF OBR INFO 02620000 EWADDISP DS XL3 ADDR OF 1ST BYTE OF OBR DEVICE 02640000 * DEPENDENT INFO (EWARCBLT=0) @G64SPLK 02660000 EWAIERP DS XL128 AREA FOR INDIVIDUAL ERP USE 02750021 ORG EWAIERP 02800021 SPACE 1 02850021 * IOS USAGE OF ERP DEPENDENT AREA FOR READING SENSE DATA AND 02900021 * FOR A TEMPORARY STORAGE BEFORE THE ERP IS INITIALLY ENTERED 02950021 EWASNS EQU * SENSE DATA START 03000021 DS XL64 SENSE INFORMATION 03050021 EWASCSW DS CL7 SLOT TO SAVE CSW ON INTERCEPT 03100021 DS CL1 RESERVED @ZA16177 03110000 EWACHAIN DS F POINTER TO EWA FOR ALT PATH @ZA16177 03120000 EWAHL EQU 32 HEADER LENGTH 03150021 MEND 03200021 * */ 03202021 *@LIST POP; 03210021 * 03300021 * /************************************************************/ 03350021 * /* */ 03400021 * /* THIS STRUCTURE DESCRIBES THE ERROR PROCEDURE WORK AREA */ 03450021 * /* COMMON SECTION WHICH IS INVOKED BY IECDERWA AS AN INNER */ 03460021 * /* MACRO. IT IS GOTTEN BY THE I/O INTERRUPT HANDLER OR */ 03470021 * /* POST STATUS. THE WORKAREA CONSISTS OF TWO SECTIONS: THE */ 03550021 * /* COMMON SECTION WHICH CONTAINS INDICATORS, COUNTERS, AND */ 03600021 * /* SENSE INFORMATION - AND ERP DEPENDENT SECTIONS WHICH */ 03650021 * /* ARE AVAILABLE FOR ERP USE AS NEEDED. THE DEPENDENT SEC- */ 03700021 * /* TIONS ARE INCLUDED BY IECDERWA VIA OPTIONS THROUGH THE */ 03710021 * /* MACRO CALL. */ 03720021 * /* */ 03750021 * /************************************************************/ 03800021 * 03850021 * DCL 1 EWA BDY(DWORD) BASED(EWAPTR), 03860021 * 2 EWAHDR PTR(31), /* EWA HEADER */ 03900021 * 3 EWAEXT PTR(31), /* ADDRESS OF WA EXTENTION */ 03950021 * 2 EWAFLAGS CHAR(4), /* FOUR BYTES OF FLAGS */ 04000021 * 3 EWAFLG1 BIT(8), /* FLAG BYTE 1 */ 04050021 * 4 EWASLIS BIT(1), /* WORK AREA INVOLVED IN */ 04060021 * /* RECOVERY SENSE */ 04070002 * 4 * BIT(1), /* RESERVED @ZA16177*/ 04077000 * 4 * BIT(1), /* RESERVED */ 04083000 * 4 * BIT(1), /* RESERVED */ 04089000 * 4 EWASCCD BIT(2), /* SIO CONDITION CODE */ 04102021 * 5 EWASCC3 BIT(2), /* CONDITION CODE 3 */ 04104021 * 6 EWASCC2 BIT(1), /* CONDITION CODE 2 */ 04106021 * 6 EWASCC1 BIT(1), /* CONDITION CODE 1 04108002 * SEE END OF EWA FOR CC 0 */ 04108402 * 4 EWADDMSG BIT(1), /* ERP DEPENDENT DATA TO BE 04110002 * INCLUDED IN I/O ERROR 04120002 * MESSAGE */ 04130002 * 4 EWABDSNS BIT(1), /* SENSE UNSUCCESSFUL */ 04150021 * 3 EWAFLG2 BIT(8), /* FLAG BYTE 2 */ 04200021 * 4 EWAMDR BIT(1), /* IF ON, MDR REQUEST 04210002 * IF OFF, OBR REQUEST */ 04220002 * 4 EWAWTEMP BIT(1), /* ON - TEMPORARY WRITE ERR 04222002 * COUNTER TO BE UPDATE IF 04224002 * DATA CHECK CONDITION 04226002 * OFF - TEMPORARY READ ERR 04228002 * COUNTER TO BE UPDATED */ 04228402 * 4 EWACOVF BIT(1), /* COUNTER OVERFLOW FOR 04228802 * STATISTICS UPDATE */ 04229202 * 4 EWADIR BIT(1), /* DIR IN PROGRESS */ 04229602 * 4 EWARCBLT BIT(1), /* OBR RECORD BUILT BY CALLER 04230000 * @G64SPLK*/ 04235000 * 4 * BIT(3), /* RESERVED @G64SPLK*/ 04240000 * 3 EWAFLG3 BIT(8), /* FOR DEVICE DEPENDENT ERP 04250002 * USAGE */ 04260002 * 4 EWAJAM BIT(1), /* 3800 PAPER JAM @Y40MPLG*/ 04280000 * 3 EWASNSCT BIT(8), /* LOOP COUNT FOR SENSE 04300002 * FAILURE */ 04310002 * 4 EWASCTMX BIT(8), /* MAX. # OF SENSES TRIED @ZA25026*/ 04312000 * 2 EWASSTAT BIT(16), /* CSW STATUS ON SENSE OP- 04350002 * ERATION IF THIS IS A 04400002 * UNIT CHECK. */ 04450002 * 2 EWACNTRS CHAR(4), /* COUNTERS FOR ERP USE */ 04500021 * 3 EWACNTR1 PTR(8), /* COUNTER 1 */ 04550021 * 3 EWACNTR2 PTR(8), /* COUNTER 2 */ 04600021 * 3 EWACNTR3 PTR(8), /* COUNTER 3 */ 04650021 * 3 EWACNTR4 PTR(8), /* COUNTER 4 */ 04700021 * 2 EWASTUP CHAR(2), /* STATISTICS INFORMATION 04750002 * FOR UPDATING STATISTICS */ 04800002 * 2 EWAERPIB, /* ERPIB BUILT BY CCH FOR 04850000 * CHANNEL ERRORS TO INDI- 04900000 * CATE TO ATTEMPT A RETRY */ 04950000 * 3 * CHAR(1), /* RESERVED */ 05000000 * 3 EWAUCB PTR(24), /* UCB ADDRESS @G64SPLK*/ 05050000 * 3 EWARGFG1 BIT(8), /* FLAG BYTE */ 05150021 * 4 EWACSIO BIT(1), /* CSW STORED AFTER SIO */ 05160002 * 4 EWACINT BIT(1), /* CSW STORED AFTER I/O INT*/ 05170002 * 4 EWACTIO BIT(1), /* CSW STORED AFTR TEST I/O*/ 05180002 * 4 EWACHIO BIT(1), /* CSW STORED AFTR HALT I/O*/ 05190002 * 4 * BIT(1), /* RESERVED */ 05200002 * 4 EWACSNS BIT(1), /* SENSE DATA WAS STORED */ 05210002 * 4 EWACCNT BIT(1), /* CSW COUNT IS VALID */ 05220002 * 4 EWANORTY BIT(1), /* NO RETRY INDICATOR */ 05250021 * 3 EWARGFG2 BIT(8), /* PROBABLE SOURCE INDICTRS*/ 05300021 * 4 EWACCPU BIT(1), /* CPU ERROR */ 05310002 * 4 EWACCHA BIT(1), /* CHANNEL ERROR */ 05320002 * 4 EWACSCU BIT(1), /* STORAGE CONTROL UNIT ERR*/ 05330002 * 4 EWACSTG BIT(1), /* STORAGE ERROR */ 05340002 * 4 EWACCUE BIT(1), /* CONTROL UNIT ERROR */ 05342002 * 4 * BIT(3), /* RESERVED */ 05344002 * 3 EWAXCSW1 BIT(8), /* VALIDITY INDICATORS */ 05350021 * 4 EWACITF BIT(1), /* INTERFACE ADDR IS VALID */ 05360002 * 4 * BIT(2), /* RESERVED */ 05370002 * 4 EWACSQV BIT(1), /* SEQUENCE CODE IS VALID */ 05380002 * 4 EWACUNS BIT(1), /* UNIT STATUS IS VALID */ 05390002 * 4 EWACCMD BIT(1), /* COMMAND ADDRESS IS VALID*/ 05392002 * 4 EWACCHV BIT(1), /* CHANNEL ADDR IS VALID */ 05394002 * 4 EWACDAV BIT(1), /* DEVICE ADDRESS IS VALID */ 05396002 * 3 EWAXCSW2 BIT(8), /* TERMINATN & SEQNCE CODES*/ 05400021 * 4 EWACTEC BIT(2), /* TERMINATION CODE 05410002 * SEE BELOW FOR VALUES */ 05420002 * 4 * BIT(2), /* RESERVED */ 05430002 * 4 EWACDIN BIT(1), /* I/O ERROR ALERT */ 05440002 * 4 EWACSEQ BIT(3), /* SEQUENCE CODES - SEE 05442002 * BELOW */ 05444002 * 2 EWACHA CHAR(2), /* UNIT ADDRESS ON WHICH 05450002 * LAST I/O WAS STARTED */ 05500002 * 2 EWAFLGA BIT(8), /* FLAGS FOR IOS INTERNAL USE 05550000 * @ZA16177*/ 05560000 * 05570000 * 3 EWAINIT BIT(1), /* PATH VALID FOR SENSE @ZA16177*/ 05580000 * 3 EWADONE BIT(1), /* SENSE COMPLETE @ZA16177*/ 05590000 * 3 EWAVLCHN BIT(1), /* EWACHAIN FIELD VALID @ZA16177*/ 05600000 * 3 * BIT(1), /* RESERVED @G64JPLN*/ 05610000 * 3 EWADDE BIT(4), /* BITS RESERVED FOR DEVICE 05620000 * DEPENDENT EXITS @G64JPLN*/ 05630000 * 2 EWACPU CHAR(1), /* CHANNEL SET ON WHICH I/O 05640000 * ERROR WAS ENCOUNTERED @G64SPLK*/ 05650000 * 2 EWADRCW PTR(31), /* ADDR OF RECORD CONTROL TABLE 05660000 * (VALID ONLY IF EWARCBLT=1) 05670000 * @G64SPLK*/ 05680000 * 3 EWADCNT CHAR(1), /* # OF BYTES OF OBR INFO @G64SPLK*/ 05690000 * 3 EWADDISP PTR(24), /* ADDR OF OBR DEVICE DEPENDENT 05700000 * INFORMATION (EWARCBLT=0) 05710000 * @G64SPLK*/ 05720000 * 2 EWAIERP CHAR(128) BDY(DWORD); 05800021 * /* AREA FOR INDIVIDUL ERPS */ 05850021 * 05900021 * DCL 1 EWADDIOS DEF(EWAIERP) BDY(DWORD), 05920000 * 06000021 * /* IOS USAGE OF ERP DEPENDENT AREA FOR READING SENSE DATA */ 06050021 * /* FOR TEMPORARY STORAGE BEFORE ERP IS INITIALLY ENTERED. */ 06100021 * 06150021 * 2 EWASNS CHAR(64), /* SENSE DATA START */ 06200021 * 2 EWASCSW CHAR(7), /* SLOT TO SAVE CSW ON 06250002 * INTERCEPT */ 06300002 * 2 * CHAR(1), /* RESERVED @ZA16177*/ 06302000 * 2 EWACHAIN PTR(31) BDY(WORD), /* POINTER TO EWA FOR ALT. 06304000 * PATH @ZA16177*/ 06306000 * 2 EWAEND CHAR(0); /* END OF EWA */ 06310021 * DCL EWASCC0 BIT(8) CONSTANT('00'X); /* 06360002 * CONDITION CODE 0 */ 06410002 * DCL EWATER0 BIT(2) CONSTANT('00'B); /* 06460002 * INTERFACE DISCONNECT */ 06510002 * DCL EWATER1 BIT(2) CONSTANT('01'B); /* 06560002 * STOP, STACK, NORMAL TERMNTN*/ 06610002 * DCL EWATER2 BIT(2) CONSTANT('10'B); /* 06660002 * SELECTIVE RESET */ 06710002 * DCL EWATER3 BIT(2) CONSTANT('11'B); /* 06760002 * SYSTEM RESET */ 06810002 * DCL EWACSEQ0 BIT(3) CONSTANT('000'B); 06860002 * DCL EWACSEQ1 BIT(3) CONSTANT('001'B); 06910002 * DCL EWACSEQ2 BIT(3) CONSTANT('010'B); 06960002 * DCL EWACSEQ3 BIT(3) CONSTANT('011'B); 07010002 * DCL EWACSEQ4 BIT(3) CONSTANT('100'B); 07060002 * DCL EWACSEQ5 BIT(3) CONSTANT('101'B); 07110002 * DCL EWACSEQ6 BIT(3) CONSTANT('110'B); 07160002 * DCL EWACSEQ7 BIT(3) CONSTANT('111'B); 07210002