• 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
        • <GIMUNZIP> Tag syntax
        • <ARCHDEF> Tag syntax
        • Syntax notes
      • Example 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
        • <GIMZIP> Tag syntax
        • <FILEDEF> Tag syntax
        • Syntax notes
      • Example of using GIMZIP
      • GIMZIP processing
      • Package attribute file
        • <PKGDEF> Tag syntax
        • <ARCHDEF> Tag syntax
        • <ARCHSEG> Tag syntax
        • <?PKGHASH> Tag syntax
        • Syntax notes
        • Package attribute file example
        • Displaying the package attribute file
      • Archive files
        • File attribute file
          • <FILELIST> Tag syntax
          • <FILEATTR> Tag syntax
          • <DEFINECLUSTER> Tag syntax
            • <OPERAND> 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