CSFWPUTL invokes CSFPUTIL. CSFWPUTL 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 (CSFWPUTL), 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. *
//* *
//* CSFWPUTL: Invokes CSFPUTIL *
//* *
//* DESCRIPTION: *
//* CSFPUTIL 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 CSFPUTIL functions. *
//* *
//* However, when running the ICSF CSFPUTIL, 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. *
//* *
//* CSFWPUTL will call CSFPUTIL and pass any specified function in *
//* the "PARM=... " parameter to CSFPUTIL. On return from *
//* CSFPUTIL, 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 CSFWPUTL assembler code. *
//* This CSFWPUTL 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 CSFWPUTIL 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 CSFWPUTL 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 CSFWPUTL EXEC JCL, for the PARM='....' specify the *
//* requested function for CSFPUTIL. *
//* *
//* 8.Users may want to separate the CSFWPUTL EXEC JCL into a *
//* separate JOB. *
//* *
//* NOTES: *
//* 1.This job should be rerun with every new release of ICSF. *
//* *
//*******************************************************************
//* JCL to assemble CSFWPUTL *
//*******************************************************************
//* 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 *
*********************************************************************
* CSFWPUTL assembler code *
*********************************************************************
TITLE 'CSFWPUTL - ICSF CSFPUTIL INVOKER'
PRINT GEN
***********************************************************************
* *
* FUNCTION : ICSF CSFPUTIL CALLER UTILITY *
* *
* DESCRIPTIVE NAME : ICSF CSFPUTIL CALL ROUTINE *
* *
* VERSION : RELEASE 1 LEVEL 000 *
* *
* OBJECTIVE : *
* *
* CSFPUTIL UTILITY : *
* *
* THIS PROGRAM ACCEPTS AN INVOCATION PARM THEN CALLS CSFPUTIL *
* 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 : CSFWPUTL *
* *
* INPUT ARGUMENTS : INVOCATION PARM PASSED TO CSFPUTIL *
* *
* *
* 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
CSFWPUTL CSECT
USING CSFWPUTL,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'** CSFWPUTL **' MODULE
DC C'** &SYSDATE **' ASM DATE
DC C'** &SYSTIME **' ASM TIME
DC C'CSFWPUTL : ICSF CSFPUTIL 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(CSFPUTIL) LOAD CSFPUTIL
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 'CSFWPUTL R15: XXXXXXXX R0: XXXXXXXX'
B RETURN
NOPARM DS 0H
WTO 'CSFWPUTL : NO PARAMETERS SPECIFIED'
B RETURN
RETURN DS 0H
L R15,R15SAVE GET CSFPUTIL 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 CSFWPUTL
//*******************************************************************
//* JCL to link edit CSFWPUTL *
//*******************************************************************
/*
//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 CSFWPUTL(R)
//*******************************************************************
//* JCL to invoke CSFWPUTL *
//*******************************************************************
/*
//CSFWPUTL EXEC PGM=CSFWPUTL,REGION=512K,
// PARM='CSF.EXAMPLE.PKDS,REFRESH'
//STEPLIB DD DSN=USER.STEPLIB,DISP=SHR
//*
|