Table of Contents (exploded view)
Abstract for SMP/E Reference
Summary of changes
Changes made in SMP/E Version 3 Release 6
Changes made in SMP/E Version 3 Release 5
Changes made in SMP/E Version 3 Release 4
Syntax notation and rules
How to read the syntax diagrams
Syntax rules for MCS and SMPPARM members
Syntax rules for XML statements
SMP/E modification control statements
++APAR MCS
++ASSIGN MCS
Data element MCS
Supporting several languages
Syntax
Adding or replacing a data element
Deleting a data element
Operands
Usage notes
Examples
Example 1: Packaging a CLIST in a function
Example 2: Packaging a renamed CLIST
++DELETE MCS
Example 1: Deleting a single load module
Example 2: Deleting an alias from a load module
Example 3: Deleting an alias from a load module in a UNIX file system
++FEATURE MCS
++FUNCTION MCS
Hierarchical file system element MCS
Adding or replacing a hierarchical file system element
Deleting a hierarchical file system element
Operands
Usage notes
Examples
Example 1: Packaging a hierarchical file system element in a function
Example 2: Packaging a renamed hierarchical file system Element
Example 3: Packaging a SYSMOD with a symbolic link
++HOLD MCS
Example 1: Noting a special documentation change
Example 2: Marking a PTF that is in error
Example 3: Specifying a hold class
Example 4: Identifying APARs and their associated fix categories
++IF MCS
++JAR MCS
Adding or replacing a JAR element
Deleting a JAR element
Operands
Usage notes
Examples
++JARUPD MCS
++JCLIN MCS
Example 1: ++JCLIN data packaged inline
Example 2: ++JCLIN data packaged in a RELFILE
Example 3: ++JCLIN data packaged in a TXLIB with a user utility program name
++MAC MCS
Adding or replacing a macro
Deleting a macro
Operands
Usage notes
Examples
Example 1: Replacing a macro through a USERMOD
Example 2: Deleting a macro
Example 3: Adding a new macro
Example 4: Packaging a renamed macro
++MACUPD MCS
++MOD MCS
Adding or replacing a module
Deleting a module
Operands
Usage notes
Examples
Example 1: Adding a new module to an existing load module
Example 2: Specifying link-edit utility attributes with LEPARM
Example 3: Packaging a renamed module
Example 4: Deleting a module
++MOVE MCS
Moving to another DISTLIB
Moving to another SYSLIB
Operands
Usage notes
Examples
++NULL MCS
++PRODUCT MCS
++PROGRAM MCS
Adding or replacing a program element
Deleting a program element
Operands
Usage notes
Examples
++PTF MCS
++RELEASE MCS
Example 1: Removing a SYSMOD from HOLDUSER status
Example 2: Incorrect use of ++RELEASE
Example 3: A ++RELEASE statement with a FIXCAT HOLD
++RENAME MCS
++SRC MCS
Adding or replacing source
Deleting source
Operands
Usage notes
Examples
Example 1: Adding a new source to the system
Example 2: Packaging renamed source
++SRCUPD MCS
Example 1: Updating an existing source
Example 2: Making subsequent source updates
++USERMOD MCS
++VER MCS
Example 1: Defining base and dependent functions
Example 2: Defining intersecting dependent functions
Example 3: Deleting a previous level of a function
Example 4: Deleting a function without replacing it (dummy delete)
++ZAP MCS
Example 1: Changing all load modules that contain the same module
Example 2: Changing the only load module that contains a given module
Example 3: Changing one of several load modules that contain a given module
Example 4: Expanding a module
Defining control statements in SMPPARM members
GIMDDALC control statements
Syntax
Operands
Syntax notes
Sample GIMDDALC member
GIMEXITS control statements
Syntax
Operands
Syntax notes
Sample GIMEXITS member
OPCODE control statements
Syntax
Operands
Usage notes
Examples
Example 1: Defining a new OPCODE for special assemblers
Example 2: Overriding an SMP/E-defined OPCODE
SMP/E data sets and files
CLIENT
Distribution library (DLIB)
INFILE
Link library (LKLIB)
ORDERSERVER
OUTFILE
SERVER
SMPCLNT
SMPCNTL
SMPCPATH
SMPCSI
SMPDATA1
SMPDATA2
SMPDEBUG
SMPDIR
SMPDUMMY
SMPHOLD
SMPHRPT
SMPJCLIN
SMPJHOME
SMPLIST
SMPLOG
SMPLOGA
SMPLTS
SMPMTS
SMPNTS
SMPOBJ
SMPOUT
SMPPARM
SMPPTFIN
SMPPTS
SMPPTS spill data set
SMPPUNCH
SMPRPT
SMPSCDS
SMPSNAP
SMPSRVR
SMPSTS
SMPTLIB
SMPTLOAD
SMPWKDIR
SMPWRK1
SMPWRK2
SMPWRK3
SMPWRK4
SMPWRK6
SMPnnnnn
SYSIN
SYSLIB
SYSPRINT
SYSPUNCH
SYSUT1, SYSUT2, and SYSUT3
SYSUT4
Target library
Text library (TXLIB)
Zone statement
SMP/E data set entries
How the data sets are organized
How data set entries are organized
Entries that control processing
Processing the global zone
Processing a target zone or a distribution zone
Entries that define status and structure
Processing the global zone
Processing the target zone
Processing the distribution zone
ASSEM entry (distribution and target zone)
Example 1: Deleting an ASSEM entry
Example 2: Adding a new ASSEM entry
BACKUP entries (SMPSCDS)
Example: Deleting BACKUP entries
Data element entry (distribution and target zone)
Example: Adding a new data element entry
DDDEF entry (distribution, target, and global zone)
Example 1: Defining global zone DDDEFs for cataloged data sets
Example 2: Defining DLIB zone DDDEFs for cataloged data sets
Example 3: Defining target zone DDDEFs for cataloged data sets
Example 4: Defining a DDDEF for a noncataloged data set
Example 5: Defining a concatenated DDDEF entry
Example 6: Defining DDDEFs for temporary data sets
Example 7: Defining a global zone DDDEF for SMPTLIB data sets
Example 8: Defining a DLIB zone DDDEF for SMPTLIB data sets
Example 9: Protecting data sets
Example 10: Defining pathnames in a UNIX file system
DLIB entry (distribution and target zone)
Example: Changing the destination of a copied library
DLIBZONE entry (distribution zone)
Example 1: Defining a DLIBZONE entry
Example 2: Formatting a zone description
FEATURE entry (global zone)
Example: Adding a FEATURE entry
FMIDSET entry (global zone)
Example 1: Defining an FMIDSET entry
Example 2: Modifying an FMIDSET entry
GLOBALZONE entry (global zone)
Example 1: Defining the GLOBALZONE entry
Example 2: Deleting two ZONEINDEX entries
Example 3: Formatting a zone description
Example 4: Renaming an SMPCSI data set and updating a ZONEINDEX
Hierarchical file system element entry (distribution and target zone)
Example 1: Adding a new hierarchical file system element entry
Example 2: Defining a linkname for an existing hierarchical file system element
Example 3: Adding a hierarchical file system element entry with a PARM subentry
HOLDDATA entry (global zone)
JAR entry (target and distribution zone)
LMOD entry (distribution and target zone)
Example 1: Adding a new LMOD entry
Example 2: Changing the link-edit attributes of an LMOD
Example 3: Deleting a MODDEL subentry
Example 4: Completing cross-zone updates
Example 5: Adding a CALLLIBS subentry list to an LMOD entry
Example 6: Deleting link-edit control statements
Example 7: Adding a UTIN and SIDEDECKLIB subentry to an LMOD
Example 8: Deleting a UTIN subentry from an LMOD
MAC entry (distribution and target zone)
Example 1: Adding a new MAC entry
Example 2: Defining an alias for an existing macro
MCS entry (SMPPTS)
MOD entry (distribution and target zone)
Example 1: Adding a new MOD entry
Example 2: Forcing assembly of a module
Example 3: Completing cross-zone updates
MTSMAC entry (SMPMTS)
Example: Deleting an MTSMAC entry
OPTIONS entry (global zone)
Example 1: Connecting an OPTIONS entry to UTILITY entries
Example 2: Changing the SMPOUT page length
Example 3: Preparing to receive RELFILEs
Example 4: Identifying libraries for retry processing
ORDER entry (global zone)
Example: Deleting an ORDER entry
PRODUCT entry (global zone)
Example: Adding a PRODUCT entry
PROGRAM entry (distribution and target zone)
Example: Adding a new PROGRAM entry
SRC entry (distribution and target zone)
Example 1: Adding a new SRC entry
Example 2: Recording the application of a corrective fix
STSSRC entry (SMPSTS)
Example: Deleting an STSSRC entry
SYSMOD entry (distribution and target zone)
Example 1: Creating a SYSMOD entry
Example 2: Removing the ERROR indicator
SYSMOD entry (global zone)
Example 1: Changing the SOURCEID of a SYSMOD
Example 2: Indicating that a SYSMOD was applied
TARGETZONE entry (target zone)
Example 1: Defining a TARGETZONE entry
Example 2: Formatting a zone description
UTILITY entry (global zone)
Example 1: Changing the DD statement for SYSPRINT output
Example 2: Defining link-edit utility parameters
Example 3: Defining a user utility program
ZONESET entry (global zone)
Example: Defining a ZONESET entry
SMP/E CSI application programming interface
Overview of GIMAPI
QUERY command
QUERY command parameters
Building the QUERY parameters data structure
Filter parameter syntax
Valid entry types
Valid subentry types
ASSEM
Data element
DDDEF
DLIB
DLIBZONE
FEATURE
FMIDSET
GLOBALZONE
Hierarchical file system elements
HOLDDATA
JAR
LMOD
MAC
MOD
OPTIONS
ORDER
PRODUCT
PROGRAM
SRC
SYSMOD (GLOBAL zone)
SYSMOD
TARGETZONE
UTILITY
ZONESET
QUERY command processing
QUERY command output
Example of QUERY command
Data structures for QUERY command
QUERY_PARMS
ENTRY_LIST
ENTRY
SUBENTRY
VER
ITEM_LIST
FREE command
FREE command parameters
FREE command processing
VERSION command
VERSION command parameters
VERSION command processing
VERSION command output
Programming in C
Data structures in C
QUERY_PARMS
API_VERSION
ENTRY
ENTRY_LIST
ITEM_LIST
SUBENTRY
VER
Programming in PL/I
Data structures in PL/I
QUERY_PARMS
API_VERSION
ENTRY
ENTRY_LIST
ITEM_LIST
SUBENTRY
VER
Programming in assembler
Data structures in assembler
QUERY_PARMS
ENTRY_LIST
ENTRY
SUBENTRY
VER
ITEM_LIST
API_VERSION
Additional programming considerations
Sample programs that use GIMAPI
Sample C/370 program
Sample PL/I program
Sample assembler program
Writing UNIX shell scripts
Designing a shell script for SMP/E processing
Designing for copy actions
Designing for delete actions
Designing for diagnosis
Returning control to SMP/E
Example shell script
Library change file records
Library change file record structure
Library change file record types
A0 - Alias record type 0
A1 - Alias record type 1
C0 - Continuation record type 0
E0 - Element record type 0
E1 - Element record type 1
H0 - Header record type 0
L0 - Library record type 0
L1 - Library record type 1
L2 - Library record type 2
P0 - SYSMOD status record type 0
S0 - SMP/E environment record type 0
T0 - Trailer record type 0
Valid action types
Usage recommendations
SMP/E exit routines
RECEIVE exit routine
Changing records within SMPPTFIN
Inserting records within SMPPTFIN
Inserting records at the end of SMPPTFIN
Skipping records in SMPPTFIN
Retry exit routine
JCL statements required to invoke SMP/E
JOB statement
EXEC statement
DD statements
Service routines
GIMCPTS: SYSMOD compaction service routine
Calling GIMCPTS
Example
Return codes
GIMDTS: Data transformation service routine
Calling GIMDTS
Processing
Return codes
GIMGTPKG service routine
Calling GIMGTPKG
Example of using GIMGTPKG
GIMGTPKG processing
Return codes
GIMUNZIP file extraction service routine
Calling GIMUNZIP
GIMUNZIP package control tags
Tag syntax
Tag syntax
Tag syntax
Syntax notes
Examples of using GIMUNZIP
GIMUNZIP processing
Determining the required size of SMPWKDIR
Sample RECEIVE job for GIMUNZIP output
Return codes
GIMXSID software inventory data service routine
Calling GIMXSID
GIMXSID control statements
Syntax notes
Example of using GIMXSID
Processing
Initialization
Read and verify control statements
Verifying the target zones
Accessing resources
Building the GIMXSID information
Building the feature list
Building the FMID list
Building the PTF list
Sample software inventory when INVENTORY=ALL
Zone and data set sharing considerations
Return codes
GIMXTRX service routine
Calling GIMXTRX
Input parameter data set contents
Examples of using GIMXTRX
Processing
List target zone names (LSTTZN)
Inputs
Example of a target zone name record
Create a BITMAP of an SMPCSI (BMPTZN)
Inputs
PRODLIST record
BITMAP records
Return codes
GIMZIP packaging service routine
Calling GIMZIP
GIMZIP package control tags
Tag syntax
Tag syntax
Syntax notes
Example of using GIMZIP
GIMZIP processing
Package attribute file
Tag syntax
Tag syntax
Tag syntax
Tag syntax
Syntax notes
Package attribute file example
Displaying the package attribute file
Archive files
File attribute file
Tag syntax
Tag syntax
Tag syntax
Tag syntax
NOTE:
Syntax notes
File attribute file examples
Return codes
GIMIAP
Control statements used to invoke GIMIAP
The INVOKE control statement
COPY control statement
The SELECT control statement
Return codes
JCL statements used in the DEIINST or HFSINST job
SMP/E naming conventions
Naming conventions for HOLD reason IDs and HOLD classes
Error reason IDs
System reason IDs
User reason IDs
Class values
Naming conventions for source IDs
Naming conventions for SYSMODs
Function SYSMOD IDs
PTF, APAR, and USERMOD SYSMOD IDs