Google
 

Trailing-Edge - PDP-10 Archives - BB-L054E-RK - pep.rnl
There are no other files named pep.rnl in the archive.
.ap;.lm 4;.rm72
.title PEP Program Logic Manual
.bl 10
.center;PEP Program Logic Manual
.s
.center;Eric S. Bloom
.s
.center;8-Jun-82
.page
.chapter Introduction

	PEP is the user interface program to Autopatch.  PEP stands for
Patch Executive Program.  

	PEP is written in BLISS 36, for TOPS-10 and TOPS-20.  The source
code is the same for both systems.  The Galaxy library, GLXLIB, is used
for command parsing and file I/O.

	PEP is maintained on system KL2137::BASIC:<PEP>.

	PEP is actually two programs, PEP and PEPB.

	PEP is the user interface to Autopatch.  This is the program that
the user runs in order to Autopatch his software.  PEP maintains a database
file, called PEPCKP.PDB, which keeps track of all the products
being patched, and the state of each patch to each product.  The database
file is re-written after any information is updated.  If the system crashes
during any part of Autopatching, the user simply needs to re-issue the last
command that was executing when the system crashed.  PEP will read the database
and know where to pick up.

	 PEPB is the batch component of the Autopatching Exec.  It
runs as part of the control file that applies the patches and rebuilds
an autopatchable product.  PEPB can access the database file created
by PEP.  It therefore can determine the status, files, and logical
names associated with each autopatchable product.  PEPB is run to
perform the initialization required by the batch job.  During this
initialization, logical names are defined and the required files are
verified.  PEPB is also run at the termination of the batch job.  At
this time it writes a status file (to be read by PEP) containing
information about the results of the batch job.

.chapter Files used to Build PEP
.hl1 Files for PEP
.hl2 Library and Require Files
.ls
.le;APEX.R36 contains data structure definitions, literals, and some macros.
.le;DEBUG.R36 defines the $TRACE macro used in debugging PEP.
.le;FILES.10 contains the filenames and logical names for PEP on TOPS-10.
.le;FILES.20 contains the filenames and logical names for PEP on TOPS-20.
.le;FILES.REQ is always a copy of FILES.10 or FILES.20, depending on which
operating system is being used.
.els
.hl2 Source Files
.ls
.le;APXBAT.B36 is the main module for PEPB.  It is not needed for PEP.
.le;APXCHK.B36 has routines that check the various files needed in the
Autopatching process.
.le;APXCKP.B36 contains the database checkpointing routines.
.le;APXCMD.B36 contains routines for parsing interactive commands and
data read from a file.
.le;APXERR.B36 contains the error messages.
.le;APXFIL.B36 contains various file handling routines.
.le;APXINI.B36 is the main module for PEP.  It is not needed for PEPB.
.le;APXPAT.B36 contains routines for manipulating patches.  It generates
the command files that MAKLIB or UPDATE reads.
.le;APXPSI.B36 contains product specific routines to be executed when
the product is SELECTed.
.le;APXTBL.B36 contains routines to lookup and enter data into tables.
.le;APXVER.MAC is the global edit history for PEP and PEPB.  It also
defines the version number.
.els
.hl1 GLXLIB
.hl2 Library and Require Files
.ls
.le;BLSGLX.R36 contains data structures for the I/O interface to GLXLIB.
.le;BLSPAR.R36 contains definitions for the command parsing interface
to GLXLIB.
.els
.hl2 Source Files
.ls
.le;BLSGLX.B36 is the interface between the BLISS code and the GLXLIB routines.
.le;BLSPAR.B36 is the interface between the BLISS code and the parsing
routines.
.le;GLXEXT.MAC contains additional GLXLIB routines.
.le;OPRPAR.REL contains the parsing routines.
.els
.chapter Data Structures
	Module APEX.R36 contains the definitions of all the data structures
and constants used.
.chapter Module APXBAT
.ls
.le;PEPB is the main routine.  It performs the required initialization of
the GLXLIB object time system.  It then reads the patch database (PEPCKP.PDB).
It enters an infinite loop to process commands.
.le;COMMAND__DISPATCH is called by GET__COMMAND, which is called by PEPB.
It gets the values stored during parsing, and dispatches to another routine
to execute the command given.
.le;HELP gets help for PEPB commands.  It should never be called, since the
batch control files don't need to ask for help.
.le;INIT is called before the patch and rebuild of the product.  It verifies
that the product has been SETUP by PEP, and that all the needed files are
available.  It then displays the files and logical names that will be used,
and the patches that will be applied.
.le;SIGNAL__FAILURE writes 'BAD' in the batch communication file so that PEP
will know that the batch job failed.
.le;SIGNAL__SUCCESS writes 'GOOD' in the batch communication file so that
PEP will know that the batch job completed successfully.
.le;WRITE__BCF writes the batch communication file.
.els
.chapter Module APXCHK
.ls
.le;INS__INIT__FILES sets the status of files to be installed.
.le;RES__INIT__FILES sets the status of files to be restored.
.le;BACKUP does the backup part of INSTALL processing.
It creates backup copies of the library and component output files in
the backup directory.
.le;REPLACE does the replace part of INSTALL processing.  The library and
component output files are copied to the installation directory.
.le;REVERT does part of the the RESTORE processing.  It copies the library
and component output files from the backup directory to the installation
directory.
.le;BCHECK checks the files required for patching and rebuilding.
.le;ICHECK checks the files required to INSTALL a product.
.le;RCHECK checks the files required to RESTORE a product.
.le;SCHECK checks the files required to SELECT a product.
.le;CK__BATCH checks the batch communication file and sets the status of the
product accordingly.
.le;UPDATE updates the status of patches that have been applied.  It also
updates the FILE$$ descriptors of the files that were patched and rebuilt.
.els
.chapter Module APXCKP
.ls
.le;DB__READ reads the checkpointed database file.
.le;DB__WRITE writes a checkpoint database file.
.le;RELOC
.le;RELOCATE
.le;SAVE__OBJ enters an object into the list of objects to be saved.
.els
.chapter Module APXCMD
.ls
.le;GET__COMMAND gets a command, parses it,  and  then  invokes
any processing associated with the command.  The command can be a
string already stored in memory, or it can be input from the terminal.
A syntax tree must be supplied that describes the syntax for all valid
commands.  This routine first invokes the GALAXY parser which parses
the command using this syntax tree.  Following a successful parse, a
list of values corresponding to the various command parameters is
available.  This routine then invokes a command processing routine to
pick up the parsed items and process them accordingly.
.le;GET__YES__NO accepts a YES or NO response.
.le;SET__LN accepts a logical name defintion.
.le;READ__FILE reads and parses a file.  It works like GET__COMMAND.
.els
.chapter Module APXERR
	Modules APXERR contains the table of error messages.
.chapter Module APXFIL
.ls
.le;BUF__READ inputs a buffer of data from a file.
.le;BUF__WRITE writes a buffer of data to a file.
.le;CK__FILE checks the checksum and version of a file.
.le;CKW__FILE checks that the specified file can be written.
.le;SCK__FILE sees if a file exists.  It does not issue any errors.
.le;CLOSE closes a file.
.le;DEF__LN defines logical names for a product.  BAK:, INS:, PAT:, DIS:, and
ASL: are defined.
.le;DELETE deletes an unopened file.
.le;DISPLAY__FILES displays the name, version, and checksum of the component
output files for a product.
.le;DISP__BUILD__FILES displays the name, version, and checksum of the files
needed to build a product.
.le;DISP__NEW__FILES displays the name, version, and checksum of the files
created by the patch and build control file for a product.
.le;DISP__FILE displays the name, version, and checksum of a file.
.le;DISP__LN__DEFS displays the logical name definitions for Autopatch.
.le;FILE__COPY copies a FILES$$ descriptor and the associated file.
.le;F__COPY copies a file.
.le;GET__BYTES reads a specified number of bytes from a file.
.le;OPEN__I opens a file for input.
.le;OPEN__O opens a file for output.
.le;R__REL resets and releases a file.
.le;UPD__FILE gets the version and checksum of a file and updates the FILE$$
descriptor.
.els
.chapter Module APXINI
.ls
.le;APEX is the main routine of PEP.  It enters an infinite loop to process
commands.  First, it does the following initialization:
.ls
.le;Init GLXLIB.
.le;Make sure PEP isn't being re-started.
.le;Get the logical name definition of PAT:.
.le;Read the checkpointed database, if it can be found.
.le;Build the Master Product list by reading the master PDF file.
.le;Update utility file entries if UTILTY.UPD is around.
.le;Build the master patch list.
.le;Check the status of any batch jobs that may have completed.
.els
.le;COMMAND__DISPATCH is called by GET__COMMAND, which is called by APEX.
It gets the values stored during parsing, and dispatches to another routine
to execute the command given.
.le;AUTOPATCH does RETRIEVE, SETUP, and BUILD processing for a product.
.le;BUILD does BUILD processing for a product.
.le;DESELECT deselects a product.
.le;EXCLUDE is not implimented.
.le;HELP gives help about PEP commands.
.le;INCLUDE is not implimented.
.le;INSTALL installs a product.
.le;RESTORE restores a product.
.le;RETRIEVE reads any new patch files (.DPD) and enters the patches in the
database.  RETRIEVE reads patches for all selected products.
.le;SELECT__ selects a product for Autopatching.  It verifies that the necessary
components of the product are in place.
.le;SETUP does SETUP processing.
.le;STATUS gives information about a product.  The INFORMATION command
calls STATUS.
.le;SUMMARY gives information about the patches applied to a product.
.le;BUILD__MP__LIST is the command processing routine for the master Product
Description File (PDF).  It builds the master list of all known
Autopatchable products.
.le;SEL__BUILD is the command processing routine for the product specific
Product Description file (PDF).  It is used to select the product.
.le;PAT__BUILD is the command processing routine for the patch directory
file (DPD).  It is called by RETRIEVE.
.le;UTL__UPDATE is the command processing routine for the utility update
file (UTILTY.UPD).  It is called by APEX before interactive commands
are accepted.
.le;MP__ERROR handles errors from BUILD__MP__LIST and UTL__UPDATE.
.le;SEL__ERROR handles errors from SEL__BUILD.
.le;PAT__ERROR handles errors from PAT__BUILD.
.le;DISP__PAT__LIST displays patches for a product.
.els
.chapter Module APXPAT
.ls
.le;BLD__MAST__PAT__LIST returns a list of all patches for a product.
.le;BLD__PAT__LIST returns a list of selectable patches for a product.
.le;BLD__PROD__LIST returns a list of products that are at a specified
patch level.
.le;CHANGE__PS changes the status of all patches at a specified status, for
a product.
.le;DISP__PAT__LIST displays the status of all patches for a product.
.le;DISP__SP__LIST displays all selected patches for a product.
.le;GENCCL generates an indirect command file for patching a product.
.le;GEN__FIXCMD generates MAKLIB FIX file commands for FIX patches.
.le;GEN__LIBCPY generates MAKLIB copy commands for REL patches.
.le;GEN__REPCMD generates MAKLIB replace commands for REL patches.
.le;GEN__SRCCMD generates UPDATE commands for SRC patches.
.le;GEN__TRACE generates MAKLIB trace commands for REL patches.
.le;GET__PAT__DIR returns a FILE$$ descriptor for the patch directory file
for a specified patch tape number.
.le;SEL__PAT sets the status of patches for a product to selected.
.els
.chapter Module APXPSI
.ls
.le;PS__INIT determines if any product specific processing is needed for
a product.  It is invoked after any product is SELECTed.
.le;xxxxxx__INI does product specific processing for product xxxxxx.
This is usually to find out which components of the product the user has.
For example, if the user is SELECTing FORTRAN, but does not have DBMS,
the components for DBMS will have to be removed from PEP's internal database.
.els
.chapter Module APXTBL
.ls
.le;GET__VALUE gets the value of an item in a table.
.le;GET__KEY gets the key field of a specified item in a table.
.le;T__DELETE deletes an entry in a table.
.le;T__ENTER enters an item into a table.
.le;T__LOOKUP looks up an entry in a table.
.le;A__LOOKUP looks up an address in the address field of a table.
.le;A__ENTER enters an address and a value.
.els
.chapter Module APXVER
	APXVER contains the global edit history for PEP and PEPB, and
the version number.  The version number should always be same for PEP
and PEPB.
.chapter Module BLSGLX

.chapter Module BLSPAR

.chapter Module GLXEXT