There are several types of invalid SVC calls recognized by 1. Invalid SVC number. If the SVC number does not fit into any of the
four classes described above, then it is not handled by D6SITS. An
appropriate error message is displayed at the terminal, and control
is returned directly to the caller.
2. Invalid routine name in SVC 202 parameter list. If the routine
named in the SVC 202 parameter list is invalid or cannot be found, DMSITS handles the situation in the same way as it handles an error
return from a legitimate SVC routine. The error code is -3.
3. Invalid SVC 203 code. If an invalid code follows SVC 203 inline,
then an error message is displayed, and the abend routine is called
to terminate execution. SEARCH RIER!RCH! FOP. SYC When a program issues SVC 202, passing a routine or command name in the parameter list, then DMSITS must be searched for the specified routine
or command. (In the case of SVC 203 with a zero in the table entry for
the specified index, the same logic must be applied.)
1.
The search algorithm is as follows: I check is made to see if there is a routine with
name currently occupying the system transient area.
case, then control is transferred there.
the specified
If this is the
2. The system function name table is searched, to see if a co.mand by
this name is a nucleus-resident command. If the search is
successful, control goes to the specified nucleus routine.
3. A search is then made for a disk file with the specified name as
the filename, and MODULE as the filetype. The search is made in
the standard disk search crder. If this search is successful, then
the specified module is loaded (via the LOIDMOD command), and
control passes to the storage location now occupied by the command. 4. If all searches so far have failed, then DftSINI (IEEREV) is called,
to see if the specified routine name is a valid system abbreviation
for a system co •• and or function. User-defined abbreviations and
synonyms are also checked. If this search is successful, then
steps 2 through 4 are repeated with the full function name. 5. If all searches fail, then an error code of -3 is issued. When a command is entered from the terminal, DMSINT processes the
command line, and calls the scan routine to convert it into a parameter
list consisting of eight-byte entries. The following search is
performed:
1. DMSINT searches for a disk file whose filename is the command name, and whose filetype is EXEC. If this search is successful, EXEC is
invoked to process the EXEC file.
2-28 IBM VM/370 System Logic and Program Determination--Volume 2
If not found, the co.mand naae is considered to be an abbreviation
and the appropriate tables are examined. If found, the abbreviation
is replaced by its full equivalent and the search for an EXEC file
is repeated.
2. If there is no EXEC file, DMSINT executes SVC 202, passing the
scanned parameter list, with the cOmmand name in the first eight
bytes. DMSITS will perform the search described for SVC 202 in an
effort to execute the command.
3. If DMSITS returns to DMSINT with a return code of -3, indicating
that the search was unsuccessful, then DMSINT uses the CP DIAGNOSE facility to attempt to execute the command as a CP command.
4. If all of these searches fail, then DMSINT displays the error
message UNKNOWN CP/CMS COMMAND. See Figure 4 for a description of this search a command na:e. USER AND TRANSIENT PROGRAM AREAS Two areas can hold programs that are loaded from disk. These are called
the user program area and the transient program area. (See Figure 3 for
a description of CMS storage usage.) A summary of CP, CMS. IPCS, and RSCS modules and their attributes, including whether they reside in the
user program area or the transient area is contained in the 2 The user program area starts at location X'20000' and extends upward
to the loader tables. Generally, all user programs and certain system commands (such as EDIT, and COPYFILE) are executed in the user program
area. Since only one program cari be executing in the user program area
at anyone time, it is impossible (without unpredictable results) for
one program being executed.in the user program area to invoke, by means
of SVC 202, a module that is also intended to te executed in the user
program area.
The transient program area is tvo pages long, extending from location X'EOOO' to location X'PPPP'. It provides an area for system commands that may also be invoked from the user program area by means of an SVC 202 call. When a transient module is called by an SVC, it is normally executed with the PSi system mask disabled for I/O and external
interrupts.
The transient program area is also used to handle certain OS macro
simulation SVC calls. OS SVC calls are handled by the JS simulation
routines located either in the CMSSEG discontiguous shared segment or in
the user program area, as close to the loader tables as possible. If DMSITS cannot find the address of a supported OS SVC handling routine,
then it loads the file DMSSVT MODULE into the transient area, and lets
that routine handle the SVC. A program being executed in the transient program area may not invoke
another program intended for execution in the transient program area,
including OS macro simulation SVC calls that are handled by DMSSVT. For example, a program being executed in the transient program area may not
invoke the RENAME command. In addition, it may not invoke the OS macro iTO, which generates an SVC 35, which is handled by DMSSVT. DMSITS starts the programs to be executed in the user program area
enabled for all interrupts but starts the programs to be executed in the
transient program area disabled for all interrupts. The individual
program may have to use the SSM (Set System Mask) instruction to change
the current status of its system mask. CMS Introduction 2-29
Previous Page Next Page