*% GOTO JSXLPLS; 00200002 * /*******************************************************************/ 00400020 * /* */ 00600020 * /* MACRO NAME = IEFVJSXL */ 00650002 * /* */ 00700002 * /* STATUS -- */ 00800020 * /* OS/VS2 RELEASE 2, MODIFICATION LEVEL 00 */ 01000002 * /* */ 01400020 * /* FUNCTION -- */ 01600020 * /* DEFINE THE JOB SCHEDULING EXIT LIST (JSXL) WHICH SPECIFIES */ 01800020 * /* OPTIONAL EXITS TO BE GIVEN CONTROL DURING JOB SCHEDULING */ 02000020 * /* SUBROUTINE PROCESSING */ 02200020 * /* */ 02400020 * /* ENTRY POINTS -- */ 02600020 * /* NONE */ 02800020 * /* */ 03000020 * /* INPUT -- */ 03200020 * /* NONE */ 03400020 * /* */ 03600020 * /* OUTPUT -- */ 03800020 * /* DATA CONSTANTS (ASSEMBLER) OR DECLARATIONS (PLS) DEFINING */ 04000002 * /* THE JSXL */ 04200020 * /* */ 04400020 * /* EXTERNAL REFERENCES -- */ 04600020 * /* NONE */ 04800020 * /* */ 05000020 * /* EXITS, NORMAL -- */ 05200020 * /* NONE */ 05400020 * /* */ 05600020 * /* EXITS, ERROR -- */ 05800020 * /* NONE */ 06000020 * /* */ 06200020 * /* TABLE/WORK AREAS -- */ 06400020 * /* NONE */ 06600020 * /* */ 06800020 * /* ATTRIBUTES -- */ 07000020 * /* NOT APPLICABLE */ 07200020 * /* */ 07400020 * /* NOTES -- */ 07600020 * /* NONE */ 07800020 * /* */ 08000020 * /*******************************************************************/ 08200020 MACRO 30200020 &NAME IEFVJSXL &PREFIX,&COMM /* 30400020 LCLA &A,&B,&C,&D,&LENJSXL 30600020 LCLB &POST,&PRINI,&PTINI,&PRFRE YM00047 30800002 LCLC &P,&PL,&LINKAGE,&ROUTINE,&F1,&F2,&F3,&F4,&F5,&F6,&F7,&F8 31000020 LCLC &G1,&G2,&G3,&G4,&G5,&G6,&G7,&G8,&COMMUN 31200020 &NAME DS 0D ALIGN JSXL 31400020 &LENJSXL SETA 8*N'&SYSLIST-8 COMPUTE LENGTH OF THIS JSXL 31600020 &P SETC 'JSX' ASSUME STANDARD PREFIX FOR LABELS 31800020 AIF (T'&PREFIX EQ 'O').JSX0010 TEST FOR SUPPLIED PREFIX 32000020 &P SETC '&PREFIX' USE SUPPLIED PREFIX IF PRESENT 32200020 .JSX0010 ANOP 32400020 &PL SETC '&P.L' SET EXTENDED PREFIX 32600020 &PL.BEGN EQU * Y02939 32650002 &PL DS CL&LENJSXL JOB SCHEDULING EXIT LIST (JSXL) 32800020 ORG &PL 33000020 &PL.LGTH DC AL2(&PL.SIZE) LENGTH 33200002 &PL.RCOD DC AL1(0) RETURN CODE 33400020 &PL.RNRM EQU X'00' NORMAL COMPLETION 33450020 &PL.RAUT EQU X'04' UNAUTHORIZED COMBINATION OF *33500020 PROGRAMS REFERENCED 33550020 &PL.PERR EQU 36 PROGRAM ERROR Y02668 33560002 &PL.RCXT DC AL1(0) ORIGIN OF RETURN CODE Y02668 33600002 * IN JSXLRCOD Y02668 33650002 * RETURN CODE ORIGIN VALUES (JSXLRCXT) Y02668 33700002 * SAME ORIGIN VALUES ARE DEFINED IN THE IEL MAPPING Y02668 33750002 &PL.JSS EQU 0 JOB SCHEDULING SUBROUTINE Y02668 33800002 &PL.RI EQU 2 CONVERTER/SWA CREATE Y02668 34200002 &PL.INIT EQU 3 INITIATOR 34400002 &PL.SSJS EQU 4 SUBSYSTEM JOB SELECT Y02668 34450002 &PL.SSI EQU 5 SUBSYSTEM INTERFACE Y02668 34500002 &PL.SUBS EQU 6 SUBSYSTEM Y02668 34550002 * EQU 7-255 RESERVED Y02668 34600002 &COMMUN SETC '0' ASSUME STANDARD VALUE FOR *34800020 COMMUNICATIONS POINTER 35000020 AIF (T'&COMM EQ 'O').JSX0020 TEST FOR SUPPLIED COMMUNICATIONS*35200020 POINTER 35400020 &COMMUN SETC '&COMM' USE SUPPLIED COMMUNICATIONS POINTER IF PRESENT 35600020 .JSX0020 ANOP 35800020 &PL.COMM DC A(&COMMUN) COMMUNICATIONS POINTER BETWEEN EXIT *36000020 ROUTINES 36200020 &PL.LDEF DS 1D FIRST ELEMENT IN ARRAY OF EXIT DEFINITIONS 36400020 ORG &PL.LDEF 36600020 &PL.LINK DS XL1 LINKAGE INFORMATION 36800020 &P.LNK EQU X'80' CODE FOR LINKAGE TO NAME 37000020 &P.XCTL EQU X'C0' CODE FOR XCTL TO NAME 37200020 &P.BR EQU X'40' CODE FOR BRANCH TO ADDRESS 37400020 &P.NULL EQU X'00' CODE FOR NO EXIT SPECIFICATION 37600020 &PL.ID DS XL1 EXIT IDENTIFICATION 37800020 &P.POST EQU X'80' CODE FOR JOB SCHEDULING ROUTINE *38000020 POST-PROCESSING EXIT ROUTINE 38200020 &P.PRINI EQU X'40' CODE FOR INITIATOR PRE-INVOCATION EXIT *38400020 ROUTINE 38600020 &P.PTINI EQU X'20' CODE FOR INITIATOR POST-INVOCATION EXIT *38800020 ROUTINE 39000020 &P.PRFRE EQU X'10' INITIATOR PRE-FREEPART EXIT YM00047 39200002 * EQU X'08' RESERVED Y02939 39600002 * EQU X'04' RESERVED. MUST BE ZERO TO ASSURE 40200020 * COMPATIBILITY WITH FUTURE EXTENSIONS 40400020 * TO THE EXIT LIST FACILITY. 40600020 * EQU X'02' RESERVED. MUST BE ZERO TO ASSURE 40800020 * COMPATIBILITY WITH FUTURE EXTENSIONS 41000020 * TO THE EXIT LIST FACILITY. 41200020 * EQU X'01' RESERVED. MUST BE ZERO TO ASSURE 41400020 * COMPATIBILITY WITH FUTURE EXTENSIONS 41600020 * TO THE EXIT LIST FACILITY. 41800020 &PL.DATA DS CL6 42000020 .********************************************************************** 42200020 .* GENERATE AN INITIALIZED EXIT LIST IMAGE IF REQUESTED * 42400020 .********************************************************************** 42600020 ORG &PL.LDEF 42800020 AIF (N'&SYSLIST LT 3).J30 BY-PASS INITIALIZATION IF NOT *43000020 REQUESTED 43200020 &A SETA 3 START SCAN AT THE THIRD POSITIONAL OPERAND 43400020 &C SETA 1 START WITH THE FIRST POSITIONAL SUBOPERAND 43600020 .J1 ANOP 43800020 &LINKAGE SETC '&P.NULL' ASSUME NO LINKAGE HAS BEEN SPECIFIED 44000020 &B SETA 3 44200020 &D SETA 1 44400020 .* MACRO VARIABLES USED TO GENERATE BYTE FOR EXIT TYPE 44450002 &F1 SETC '' 44600020 &F2 SETC '' 44800020 &F3 SETC '' 45000020 &F4 SETC '' 45200020 &F5 SETC '' 45400020 &F6 SETC '' 45600020 &F7 SETC '' 45800020 &F8 SETC '' 46000020 &G1 SETC '' 46200020 &G2 SETC '' 46400020 &G3 SETC '' 46600020 &G4 SETC '' 46800020 &G5 SETC '' 47000020 &G6 SETC '' 47200020 &G7 SETC '' 47400020 &G8 SETC '' 47600020 .* 47650002 .* -IF A JSXL EXIT HAS BEEN SPECIFIED, DETERMINE 47700002 .* THE TYPE OF EXIT LINKAGE. 47750002 .* -GENERATE THE EXIT LINKAGE BYTE 47760002 .* 47770002 AIF (N'&SYSLIST(&A) LT 1).J6 47800020 AIF ('&SYSLIST(&A,1)' NE '').J2 48000020 AGO .J6 48200020 .J2 AIF ('&SYSLIST(&A,1)' NE 'CALL').J3 48400020 &LINKAGE SETC '&P.BR' 48600020 AGO .J6 48800020 .J3 AIF ('&SYSLIST(&A,1)' NE 'LINK').J4 49000020 &LINKAGE SETC '&P.LNK' 49200020 AGO .J6 49400020 .J4 AIF ('&SYSLIST(&A,1)' NE 'XCTL').J5 49600020 &LINKAGE SETC '&P.XCTL' 49800020 AGO .J6 50000020 .J5 MNOTE *,'INVALID LINKAGE FOR EXIT(&C) IN LIST' 50200020 .J6 ANOP 50400020 &P.X&C DC AL1(&LINKAGE) SPECIFY EXIT LINKAGE 50600020 .* 50650002 .* -DETERMINE WHICH EXIT TYPE HAS BEEN SPECIFIED. 50700002 .* -GENERATE EXIT TYPE BYTE. 50750002 .* 50760002 .J7 AIF (N'&SYSLIST(&A) LT &B).J25 50800020 AIF ('&SYSLIST(&A,&B)' EQ '').J25 51000020 AIF ('&SYSLIST(&A,&B)' NE 'POST').J9 51200020 AIF (&POST EQ 0).J8 51400020 MNOTE *,'POST-PROCESSING EXIT SPECIFIED BEFORE -- PROBABLE ERR*51600020 OR' 51800020 .J8 ANOP 52000020 &POST SETB 1 52200020 &F1 SETC '+' 52400020 &G1 SETC '&P.POST' 52600020 AGO .J24 52800020 .J9 AIF ('&SYSLIST(&A,&B)' NE 'PRINI').J11 53000020 AIF (&PRINI EQ 0).J10 53200020 MNOTE *,'PRE-INVOCATION EXIT SPECIFIED BEFORE -- PROBABLE ERRO*53400020 R' 53600020 .J10 ANOP 53800020 &PRINI SETB 1 54000020 &F2 SETC '+' 54200020 &G2 SETC '&P.PRINI' 54400020 AGO .J24 54600020 .J11 AIF ('&SYSLIST(&A,&B)' NE 'PTINI').J13 54800002 AIF (&PTINI EQ 0).J12 55000020 MNOTE *,'POST-INVOCATION EXIT SPECIFIED BEFORE -- PROBABLE ERR*55200020 OR' 55400020 .J12 ANOP 55600020 &PTINI SETB 1 55800020 &F3 SETC '+' 56000020 &G3 SETC '&P.PTINI' 56200020 AGO .J24 56400020 .J13 ANOP YM00047 56450002 AIF ('&SYSLIST(&A,&B)' NE 'PRFRE').J17 YM00047 56500002 AIF (&PRFRE EQ 0).J14 YM00047 56550002 MNOTE *,'PRE-FREEPART EXIT SPECIFIED BEFORE -- PROBABLE ERROR' 56600002 .J14 ANOP YM00047 56650002 &PRFRE SETB 1 YM00047 56700002 &F4 SETC '+' YM00047 56750002 &G4 SETC '&P.PRFRE' YM00047 56800002 AGO .J24 YM00047 56850002 .J17 ANOP M0759 58596001 .J23 MNOTE *,'EXIT CODE(&D) INVALID FOR EXIT(&C) IN LIST' 58600020 .J24 ANOP 58800020 &B SETA &B+1 59000020 &D SETA &D+1 59200020 AGO .J7 59400020 .J25 DC AL1(0&F1&G1&F2&G2&F3&G3&F4&G4&F5&G5&F6&G6&F7&G7&F8&G8) *59600020 SPECIFY EXIT CODE 59800020 AIF ('&LINKAGE' NE '&P.NULL' AND *60000020 '&LINKAGE' NE '&P.BR').J27 60200020 &ROUTINE SETC '0' 60400020 AIF (N'&SYSLIST(&A) LT 2).J26 60600020 AIF ('&SYSLIST(&A,2)' EQ '').J26 60800020 &ROUTINE SETC '&SYSLIST(&A,2)' 61000020 .J26 DC XL2'0000' 61200020 DC A(&ROUTINE) ADDRESS OF EXIT ROUTINE 61400020 AGO .J29 61600020 .J27 ANOP 61800020 &ROUTINE SETC '' 62000020 AIF (N'&SYSLIST(&A) LT 2).J28 62200020 &ROUTINE SETC '&SYSLIST(&A,2)' 62400020 .J28 DC CL6'&ROUTINE ' NAME OF EXIT ROUTINE 62600020 .J29 ANOP 62800020 &A SETA &A+1 63000020 &C SETA &C+1 63200020 AIF (&A LE N'&SYSLIST).J1 63400020 .J30 ANOP 63600020 &PL.SIZE EQU *-&PL.BEGN JSXL SIZE Y02939 63650002 MEND 63800020 **/ % JSXLPLS: ; 64000002 * /******************************************************************** 64200020 * DEFINE THE JOB SCHEDULING EXIT LIST 64400020 * ********************************************************************/ 64600020 * DECLARE 64800020 * 1 JSXL BASED(JSXLPTR) BOUNDARY(WORD), 65000020 * 2 JSXLHDR, 65050002 * 3 JSXLLGTH FIXED(15), /* LENGTH OF JSXL */ 65800002 * 3 JSXLRCOD POINTER(8), /* RETURN CODE */ 66600002 *% DECLARE 66620020 * JSXLRNRM FIXED, 66640020 * JSXLRAUT FIXED, 66660002 * JSXLPERR FIXED; /* Y02668*/ 66670002 *% JSXLRNRM = 0; /* NORMAL COMPLETION */ 66700002 *% JSXLRAUT = 4; /* UNAUTHORIZED COMBINATION OF 66740002 * PROGRAMS REFERENCED */ 66790002 *% JSXLPERR = 36; /* PROGRAM ERROR Y02668*/ 66840002 * 3 JSXLRCXT PTR(8), /*ORIGIN OF RETURN CODE IN JSXLRCOD*/ 67600002 * 3 JSXLCOMM PTR(32), /*EXIT ROUTINES COMMUNICATION AREA */ 68600002 * /***********************************************************/ 69200002 * 2 JSXLLDEF(256), /* ARRAY OF EXIT DEFINITIONS */ 69400002 * /****************************************************** 69600020 * DEFINITION OF LINKAGE TO BE USED - THE FOLLOWING 69650002 * VALUES MAY BE USED IN JSXLLINK: 69700002 * JSXNULL - NO EXIT SPECIFICATION 69750002 * JSXBR - BRANCH TO ADDRESS 69800002 * JSXLNK - LINK TO NAME 69850002 * JSXXCTL - XCTL TO NAME 69900002 * ******************************************************/ 69950002 * 3 JSXLLINK PTR(8), /* METHOD OF EXIT */ 70000002 * 3 JSXLID BIT(8), /* EXIT IDENTIFIER */ 70050002 * 4 JSXPOST BIT(1), /* POST-PROCESSING EXIT Y02939*/ 72800002 * 4 JSXPRINI BIT(1),/* PRE-INVOCATION EXIT Y02939*/ 73600002 * 4 JSXPTINI BIT(1),/* POST-INVOCATION EXIT Y02939*/ 74400002 * 4 JSXPRFRE BIT(1),/* PRE-FREEPART EXIT @YM00047*/ 74450002 * 4 * BIT(4), /* RESERVED Y02939*/ 76800002 * /****************************************************** 77000020 * LINKAGE DATA -- THE FOLLOWING VALUES MAY BE USED IN 77200020 * JSXLDATA: 77400002 * 1. IF THE SPECIFIED LINKAGE IS 'LINK' OR 'XCTL', 77600020 * THEN THE 6-BYTE EBCDIC NAME OF THE ROUTINE TO BE 77800020 * GIVEN CONTROL SHOULD BE PLACED IN THIS FIELD, 78000020 * LEFT-JUSTIFIED AND PADDED WITH BLANKS IF 78200020 * NECESSARY. 78400020 * 2. IF THE SPECIFIED LINKAGE IS A 'BRANCH', THEN THE 78600020 * ADDRESS OF THE ROUTINE TO RECEIVE CONTROL SHOULD 78800020 * BE PLACED IN THIS FIELD, AND THE HIGH-ORDER 79000020 * BYTES OF THIS FIELD SHOULD BE SET TO HEXIDECIMAL 79200020 * ZEROS. 79400020 * ******************************************************/ 79600020 * 3 JSXLDATA CHARACTER(6); 79800020 *% DECLARE /* JSXLLINK CODE INDICATING XCTL LINKAGE */ 80000020 * JSXXCTL FIXED; 80200020 *% JSXXCTL = 192; 80400020 *% DECLARE /* JSXLLINK CODE INDICATING LINK LINKAGE */ 80600020 * JSXLNK FIXED; 80800020 *% JSXLNK = 128; 81000020 *% DECLARE /* JSXLLINK CODE INDICATING CALL LINKAGE */ 81200020 * JSXBR FIXED; 81400020 *% JSXBR = 64; 81600020 *% DECLARE /* JSXLLINK CODE INDICATING NO LINKAGE */ 81800020 * JSXNULL FIXED; 82000020 *% JSXNULL = 0; 82200020 *%; /* RETURN CODE ORIGIN VALUES (JSXLRCXT) Y02668*/ 82250002 *%; /* SAME ORIGIN VALUES ARE DEFINED IN THE IEL MAPPING Y02668*/ 82300002 *% DCL JSXLJSS FIXED; /* JOB SCHEDULING SUBROUTINE Y02668*/ 82400002 *% JSXLJSS = 0; 82800002 *% DCL JSXLRI FIXED; /* CONVERTER/SWA CREATE Y02668*/ 83600002 *% JSXLRI = 2; 84000002 *% DCL JSXLINIT FIXED; /* INITIATOR Y02668*/ 84200002 *% JSXLINIT = 3; 84600002 *% DCL JSXLSSJS FIXED; /* SUBSYSTEM JOB SELECT Y02668*/ 84650002 *% JSXLSSJS = 4; /* Y02668*/ 84700002 *% DCL JSXLSSI FIXED; /* SUBSYSTEM INTERFACE Y02668*/ 84750002 *% JSXLSSI = 5; /* Y02668*/ 84800002 *% DCL JSXLSUBS FIXED; /* SUBSYSTEM Y02668*/ 84850002 *% JSXLSUBS = 6; /* Y02668*/ 84900002