CSFWEUTL invokes CSFEUTIL. CSFWEUTL is a sample program that contains
sample JCL to assemble the sample program, sample link edit JCL to
put the assembled sample program into an authorized library, and sample
JCL that will invoke the sample program.
//<NAME> JOB <JOB CARD PARAMETERS>
//*******************************************************************
//* *
//* Licensed Materials - Property of IBM *
//* 5694-A01 *
//* (C) Copyright IBM Corp. 2004 *
//* *
//* *
//* This file contains a sample program (CSFWEUTL), sample JCL *
//* to assemble the sample program, sample link edit JCL to put *
//* the assembled sample program into an authorized library, and *
//* lastly sample JCL that will invoke the sample program. *
//* *
//* CSFWEUTL: Invokes CSFEUTIL *
//* *
//* DESCRIPTION: *
//* CSFEUTIL is an ICSF utility program that can perform certain *
//* functions that can be performed by using the administrator's *
//* panels. The requested function is passed in the "PARM=..." *
//* parameter. Refer to the ICSF Administrator's Guide for *
//* more information on CSFEUTIL functions. *
//* *
//* However, when running the ICSF CSFEUTIL, sometimes error *
//* conditions may occur. The type of error is qualified by the *
//* contents of register 15 and register 0 upon program exit. *
//* Unfortunately, only register 15 (return code) is externalized *
//* when running these utilities from a batch JCL interface. *
//* *
//* CSFWEUTL will call CSFEUTIL and pass any specified function in *
//* the "PARM=... " parameter to CSFEUTIL. On return from *
//* CSFEUTIL, a WTO (write to operator) is issued containing *
//* the return and reason codes. *
//* *
//* CAUTION: *
//* This file contains four sample sections. Before using this *
//* sample, you have to make the following changes. *
//* *
//* USER ACTIONS REQUIRED: *
//* 1.Add the job parameters to meet your system requirements. *
//* *
//* 2.In the ASSEMBLE JCL, change the SYSLIB DSN to match your *
//* installation specific data set names. *
//* *
//* 3.No changes are needed in the CSFWEUTL assembler code. *
//* This CSFWEUTL assembler code needs to reside in the *
//* SYSLIB DSN indicated in the ASSEMBLER JCL. *
//* *
//* 4.In the LKED JCL, for SYSLMOD DD statement, specify the *
//* installation specific authorized library dataset name that *
//* is to contain the CSFWEUTIL assembled code. *
//* *
//* 5.In the LKED JCL, for SYSLIB DD statement, specify your *
//* installation specific ICSF library dataset name. *
//* Change CSF to the appropriate high-level qualifier if you *
//* choose to not use the default. If you use an edit or *
//* CHANGE command, be sure to include the period at the end *
//* of the high-level qualifier. *
//* *
//* 6.In the CSFWEUTL EXEC JCL, for the STEPLIB DSN, specify the *
//* same dataset name as was indicated in the SYSLMOD DSN *
//* statement in the LKED JCL. *
//* *
//* 7.In the CSFWEUTL EXEC JCL, for the PARM='....' specify the *
//* requested function for CSFEUTIL. *
//* *
//* 8.Users may want to separate the CSFWEUTL EXEC JCL into a *
//* separate JOB. *
//* *
//* NOTES: *
//* 1.This job should be rerun with every new release of ICSF. *
//* *
//*******************************************************************
//* JCL to assemble CSFWEUTL *
//*******************************************************************
//* ASSEMBLER
//C EXEC PGM=ASMA90,REGION=4M
//SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR
// DD DSN=SYS1.MODGEN,DISP=SHR
//SYSUT1 DD DSN=&&SYSUT1,SPACE=(4096,(120,120),,,ROUND),UNIT=VIO,
// DCB=BUFNO=1
//SYSPRINT DD SYSOUT=*
//SYSLIN DD DSN=&&LIN,DISP=(NEW,PASS),SPACE=(TRK,(2,2)),UNIT=SYSDA
//SYSIN DD *
*********************************************************************
* CSFWEUTL assembler code *
*********************************************************************
TITLE 'CSFWEUTL - ICSF CSFEUTIL INVOKER'
PRINT GEN
***********************************************************************
* *
* FUNCTION : ICSF CSFEUTIL CALLER UTILITY *
* *
* DESCRIPTIVE NAME : ICSF CSFEUTIL CALL ROUTINE *
* *
* VERSION : RELEASE 1 LEVEL 000 *
* *
* OBJECTIVE : *
* *
* CSFEUTIL UTILITY : *
* *
* THIS PROGRAM ACCEPTS AN INVOCATION PARM THEN CALLS CSFEUTIL *
* PASSING THAT PARM. REGISTER 15 AND 0 ARE FORMATTED ON RETURN *
* IF NOT ZERO. A WRITE TO OPERATOR IS THEN ISSUED. *
* *
* *
* DEPENDENCIES : *
* *
* 1. UNDER OS/390 OPERATING SYSTEM *
* 2. UNDER IBM S/390 *
* 3. LANGUAGE : IBM S/390 ASSEMBLER *
* 4. ICSF UP AND ACTIVE *
* *
* ENTRY POINT : CSFWEUTL *
* *
* INPUT ARGUMENTS : INVOCATION PARM PASSED TO CSFEUTIL *
* *
* *
* OUTPUT ARGUMENTS : *
* *
* NONE *
* *
* FUNCTION INPUT ARGUMENTS : *
* *
* NONE *
* *
* FUNCTION OUTPUT (RETURNS) : *
* *
* RETCODE R15SAVE (FULLWORD) *
* *
* EXIT-NORMAL RETURN CODE : 0 *
* *
* EXIT-ERROR RETURN CODE : VALID RANGE 1 - 255 *
* *
* EXTERNAL-REFERENCES : NONE *
* *
* CHANGE ACTIVITY : NONE *
* *
***********************************************************************
R0 EQU 0
R1 EQU 1 WORK REGISTER/CALL PARMS
R2 EQU 2 WORK REGISTER
R3 EQU 3 WORK REGISTER
R4 EQU 4 WORK REGISTER
R5 EQU 5 WORK REGISTER
R6 EQU 6 WORK REGISTER
R7 EQU 7 WORK REGISTER
R8 EQU 8 WORK REGISTER
R9 EQU 9 WORK REGISTER
R10 EQU 10 WORK REGISTER
R11 EQU 11 SECOND BASE REGISTER
R12 EQU 12 BASE REGISTER
R13 EQU 13 SAVE AREA CHAIN
R14 EQU 14 RETURN ADDRESS
R15 EQU 15 ENTRY POINT/RETURN CODE
EJECT
CSFWEUTL CSECT
USING CSFWEUTL,R12,R11 SET UP BASE REGISTER
LA R2,4095 SET INCREMENT 4K
LA R2,1(R2)
STM R14,R12,12(R13) SAVE REGISTERS
LR R12,R15 SET UP ADDRESSABILITY
LA R11,0(R2,R12) SET SECOND BASE REG
LA R2,SAVEAREA
ST R13,4(R2)
LR R13,R2
ST R1,R1SAVE
L R4,0(R1) GET INVOCATION PARM ADDRESS
LH R3,0(R4) LOAD PARM LENGTH
LTR R3,R3 ANY PARMS?
BZ NOPARM NO...BRANCH
STH R3,PARMLEN SAVE PARM LENGTH
BCTR R3,0 DECREMENT FOR EX
LA R4,2(R4) POINT PAST LENGTH
EX R3,PARMSAVE MOVE PARM TO INVOCATION FIELD
B START BRANCH AROUND CONSTANTS
DC C'** CSFWEUTL **' MODULE
DC C'** &SYSDATE **' ASM DATE
DC C'** &SYSTIME **' ASM TIME
DC C'CSFWEUTL : ICSF CSFEUTIL INVOCATION'
DC C' (C) COPYRIGHT IBM CORP. 2004 '
DC C'LICENSED MATERIAL - PROGRAM PROPERTY OF IBM '
EJECT
START DS 0H
OI LINKPARM,X'80' SET LAST PARM INDICATOR
LA R1,LINKPARM LOAD PARM ADDRESS
L R15,=V(CSFEUTIL) LOAD CSFEUTIL
BALR R14,R15 INVOKE IT
LTR R15,R15 ANY RETURN CODE?
BZ RETURN NO, ALL DONE
ST R0,R0SAVE SAVE R0
ST R15,R15SAVE SAVE R15
L R3,R15SAVE
CVD R3,DBWD DISPLAY R15 IN DECIMAL
UNPK UNPACK8(8),DBWD+4(4)
OI UNPACK8+7,X'F0'
MVC NOTZERO+23(8),UNPACK8
L R3,R0SAVE
CVD R3,DBWD DISPLAY R0 IN DECIMAL
UNPK UNPACK8(8),DBWD+4(4)
OI UNPACK8+7,X'F0'
MVC NOTZERO+37(8),UNPACK8
NOTZERO WTO 'CSFWEUTL R15: XXXXXXXX R0: XXXXXXXX'
B RETURN
NOPARM DS 0H
WTO 'CSFWEUTL : NO PARAMETERS SPECIFIED'
B RETURN
RETURN DS 0H
L R15,R15SAVE GET CSFEUTIL RC
L R13,4(R13)
ST R15,16(13)
LM R14,R12,12(R13)
BR R14
SPACE 3
PARMSAVE MVC SAVEPARM(0),0(R4)
SPACE 3
SAVEAREA DS 18F
R0SAVE DS F
R1SAVE DS F
R15SAVE DS F
DBWD DS D
UNPACK8 DS D
TITLE 'WORK AREAS'
SPACE 3
LTORG
SPACE 3
LINKPARM DC A(PARMLEN)
DS 0D
PARMLEN DC H'0'
SAVEPARM DC XL256'00'
SPACE 3
END CSFWEUTL
//*******************************************************************
//* JCL to link edit CSFWEUTL *
//*******************************************************************
/*
//LKED EXEC PGM=HEWL,PARM='MAP,LET,LIST,AC(1)',COND=(8,LT,C)
//SYSLIN DD DSN=&&LIN,DISP=(OLD,PASS)
// DD DDNAME=SYSIN
//SYSLMOD DD DSN=USER.STEPLIB,DISP=OLD
//SYSPRINT DD SYSOUT=*
//SYSLIB DD DSN=CSF.SCSFMOD0,DISP=SHR
//*****************************************************
//SYSIN DD *
NAME CSFWEUTL(R)
//*******************************************************************
//* JCL to invoke CSFWEUTL *
//*******************************************************************
/*
//CSFWEUTL EXEC PGM=CSFWEUTL,REGION=512K,
// PARM='CSF.EXAMPLE.CKDS,REFRESH'
//STEPLIB DD DSN=USER.STEPLIB,DISP=SHR
//*
|