SVC244 in MVS Tur(n)Key V3
Home Rafael Pereira Tercero
   rptv2003@yahoo.com Español   

Presentation
Stand-alone programs
IPL from CD
IBM 1401
SoftCap
TK3-SVC244
zLinux on Hercules
PGP public key
   
 

DISABLING SVC 244 IN MVS-Tur(n)key V3

Overview

The great "MVS Tur(n)key System, Version 3" (http://www.bsp-gmbh.com/turnkey/) MVS 3.8j distribution, by Volker Bandke, BSP GmbH, includes SVC 244, which is intended to allow any program to get authorized, even though it does not fulfill the requirements of being an AC(1) program loaded from an APF-authorized library.

I don't like the presence of such a SVC in the system, so I decided to replace it with a dummy SVC in my own copy of TK3 (Turnkey System, Version3), and see what happened, ie which utilities got broken.

So far, the only required action has been to re-linkedit the BSPPILOT program with Authorization Code 1.


Replacing SVC

The following is the dummy SVC which I have substituted for the one shipped with TK3:

         TITLE 'SVC 244 - DUMMY SVC'
IGD0024D CSECT
         BR     14                  RETURN
         END

and which I have installed in my system following these simple steps:

1. Prepare a job like the following in SYS1.SYSGEN.CNTL(SVC244X):

//SVC244X JOB  (SVC244X),
//             'Install dummy SVC244',
//             CLASS=A,
//             MSGCLASS=A,
//             MSGLEVEL=(1,1)
//*******************************************************************
//*                                                                 *
//*  This job installs a dummy routine as SVC 244.                  *
//*                                                                 *
//*******************************************************************
//ASM     EXEC PGM=IFOX00,
//             PARM='XREF(SHORT),LIST,DECK,NOOBJ',
//             REGION=1024K
//SYSTERM  DD  SYSOUT=*
//SYSPRINT DD  SYSOUT=*
//SYSUT1   DD  UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT2   DD  UNIT=VIO,SPACE=(CYL,(1,1))
//SYSUT3   DD  UNIT=VIO,SPACE=(CYL,(1,1))
//SYSLIB   DD  DISP=SHR,DSN=SYS1.MACLIB,DCB=BLKSIZE=32720
//         DD  DISP=SHR,DSN=SYS1.AMODGEN
//         DD  DISP=SHR,DSN=SYS2.MACLIB
//SYSPUNCH DD  DISP=(,PASS),UNIT=VIO,SPACE=(CYL,(1,1)),
//             DCB=(LRECL=80,BLKSIZE=3120,RECFM=FB)
//SYSIN    DD  *
---here goes the routine source code---
/*
//LKED    EXEC PGM=IEWL,
//             REGION=1024K,
//             COND=(0,LT),
//             PARM='LIST,MAP.RENT,REUS,REFR'
//SYSPRINT DD  SYSOUT=*
//SYSLIN   DD  DISP=(OLD,DELETE),DSN=*.ASM.SYSPUNCH
//SYSUT1   DD  UNIT=VIO,SPACE=(CYL,(1,1))
//SYSLMOD  DD  DISP=SHR,DSN=SYS1.LPALIB(IGC0024D)
//

2. Submit the job. RC = 00.

3. IPL CLPA.


Affected Utilities

A table showing the utilities I have checked so far, whether they are affected by the SVC replacement and the applied fix follows:

UTILITY AFFECTED? FIX / COMMENTS
ASM N  
BSPPILOT Y Fix for BSPPILOT.
BSPSETPF N Uses BSPAUTH, but has AC 1.
COMPARE N  
DENQ N  
DISPLAY N  
DSAT N  
DSPACE N  
DSVC N  
DVOL N  
FREEALL N  
HEL N  
IM N  
LISTCDS N  
LISTLPA N  
LISTSPC N  
LISTVTOC N  
MURPHY N  
PDS N  
PRINTOFF N  
REVIEW N  

Fix for BSPPILOT

BSPPILOT, which is not shipped AC 1 in TK3, calls BSPRUNSC when it needs a script to be processed. BSPRUNSC, in turn, uses the BSPAUTH MACRO to become authorized/unauthorized. As a consecuence, once disabled the SVC 244, BSPRUNSC fails to process the script when it is called by BSPPILOT:

00-           f bsppilot,shutnow                             
   @STC  134 @BSPPILOT - Immediate Shutdown was requested    
  - STC  134  +BSPPILOT - Running script SHUTNOW             
  - STC  134  +BSPRS22I - Dataset processed: SYS1.PARMLIB    
  - STC  134  +BSPRS23I - on volume MVSRES                   
  - STC  134  +BSPRS08I - PARM NOREPLYU                      
  - STC  134  +BSPRS08I - PARM NOECHO                        
  - STC  134  +BSPPILOT - Script processor ended, S047, U0000

To bypass the problem, I simply re-linkedit BSPPILOT setting AC 1:

//LKED    EXEC PGM=IEWL,
//             PARM='XREF,LIST,MAP,AC=1'
//SYSPRINT DD  SYSOUT=*
//SYSUT1   DD  UNIT=VIO,SPACE=(CYL,(1,1))
//SYSLIB   DD  DISP=SHR,DSN=SYS2.LINKLIB
//SYSLMOD  DD  DISP=SHR,DSN=SYS2.LINKLIB
//SYSLIN   DD  *
  INCLUDE  SYSLIB(BSPPILOT)
  NAME     BSPPILOT(R)
/*

03/21/2009

 
   rptv2003@yahoo.com