RTNMAP
Authorization
General User
Purpose
Use the RTNMAP command to display information about callable services library (CSL) routines currently loaded and bound to an address.
Operands
- runname
- is the run name of the CSL routine to be listed. Note: This run name is not necessarily the routine’s original name; if an alias was specified when the routine was loaded, the alias name must be used.
- *
- indicates information is to be shown about all routines (this is the default) or the set of routines that satisfies the specified options.
Options
- STACK FIFO
- STACK LIFO
- places the output on the program stack, one line at a time, instead of displaying it at the terminal. The information is stacked either FIFO (first-in-first-out) or LIFO (last-in-first-out). The default order is FIFO.
- FIFO
- places the output on the program stack, one line at a time, in FIFO order. This option is equivalent to STACK and STACK FIFO.
- LIFO
- places the output on the program stack, one line at a time, in LIFO order. This option is equivalent to STACK LIFO.
- User
- specifies information is displayed only for routines loaded with the USER option (on the RTNLOAD command). For more information, see Usage Note 1.
- SYstem
- specifies information is displayed only for routines loaded with the SYSTEM option (on the RTNLOAD command). For more information, see Usage Note 1.
- GRoup grpname
- specifies only routines that were loaded into the specified grpname (on the RTNLOAD command) are to be displayed. If either USER or SYSTEM is also specified, information will be displayed about a routine only if it meets both sets of criteria.
- Header
- specifies the output at the user's terminal is to be preceded by a header that identifies the columns of output displayed. For more information, see Responses. HEADER is the default, unless one of the stack options (STACK, FIFO, or LIFO) is specified; in that case the HEADER option is not allowed.
- NOHeader
- specifies the output at the user’s terminal is not to be preceded by a header to identify the
columns of displayed output.
When one of the stack options (STACK, FIFO, or LIFO) is specified, the NOHEADER option is the default and the HEADER option is not allowed.
- ALL
- specifies information is displayed about all routines that meet the specified criteria, even if
the routines were reloaded with conflicting options using
RTNLOAD ... (PUSH
. If ALL is not specified, information is displayed only for the most recently loaded copy of the routine(s) specified by name or *.Inactive routines are preceded by an
*
in the output; active routines are preceded by a blank in the output.
Usage Notes
- If neither the USER nor SYSTEM option is specified, RTNMAP displays information according to the routine(s) specified in the name or * operand and, if specified, the GROUP and ALL options.
- If a routine was loaded with multiple alias names and
RTNMAP *
is specified, a line is displayed for each alias name. - The following commands are related to RTNMAP:
- CSLLIST – displays a list of routines contained in a callable services library
- RTNLOAD – loads a CSL routine
- RTNDROP – drops a loaded CSL routine
- RTNSTATE – determines the status of a specific CSL routine
Examples
- A routine named FORMULA exists in a callable services library named TEST. It was loaded with an
alias name FORMULA2 using the following command:
Suppose the routine took up 300 bytes of storage and it has been invoked three times since it was loaded. To display information about this routine, entering the commandRTNLOAD FORMULA FORMULA2 (FROM TEST ALIAS
produces the following output:RTNMAP FORMULA2 (USER HEADER
Alias Name Library UseCount LoadAddr Size Attrib. Group -------- ------- -------- -------- -------- ----- -------- ----- FORMULA2 FORMULA TEST 3 005CBC68 300 USER
- Suppose the FORMULA routine was reloaded with the same alias name, but with the SYSTEM option,
using the following command:
This copy of the routine also takes up 300 bytes of storage and it has been invoked two times since it was loaded. Entering the commandRTNLOAD FORMULA FORMULA2 (FROM TEST ALIAS SYSTEM
produces the following output:RTNMAP FORMULA2 (ALL HEADER
Alias Name Library UseCount LoadAddr Size Attrib. Group --------- ------- ------- -------- -------- ----- ------- ----- FORMULA2 FORMULA TEST 2 005CBC68 300 SYSTEM *FORMULA2 FORMULA TEST 3 005CBC68 300 USER
Responses
Alias Name Library UseCount LoadAddr Size Attrib. Group
-------- ------- ------- -------- -------- ---- ------- -----
rtnalias rtnname libname count address size attrib grpname
Where: - rtnalias
- is the name used to invoke this routine. If the name is preceded by an asterisk (
*
), a copy of this routine was reloaded using the PUSH option on RTNLOAD; the information displayed after the*
pertains to a previously-loaded copy of the routine, not the copy that can be currently invoked. - rtnname
- is the original name of this routine as it resides in the library.
- libname
- is the name of the library from which this routine was loaded.
- count
- is the number of times this routine has been invoked by DMSCSL since it was loaded. This value
can be used to determine whether to RTNDROP a routine or whether to move the library into a segment.
If the routine is called by the CSLFPI macro,
count
is not incremented. Also, CMS commands that use CSLFPI rather than DMSCSL, will not update the counter. - address
- is the address where the routine was loaded. (If you are debugging a new CSL routine, this address will be useful.)
- size
- shows how much user storage (in bytes) is occupied by this routine. A routine from a CSL that
resides in a saved segment is shown with a size of 0 (zero); this is because such a routine does not
occupy user storage and no additional storage is made available if RTNDROP is issued for this
routine.
The size of VMMTLIB members will always appear as zero unless they are loaded from a library generated by CSLGEN using the DASD option. To reduce minidisk space, the DASD version of VMMTLIB is not supplied. Instead, the segment resident version is supplied in the VMMTLIB CSLSEG file. This file is loaded into user storage when generally the used segment is not found or the parameter MTSEG NO is used when IPLing. As is true with the segment resident form of VMMTLIB, no additional user storage can be recovered by removing a single routine. This is because the in-storage library must be loaded or removed as a whole.
- attrib
- shows whether the routine was loaded with the USER attribute (the default) or with the SYSTEM attribute. If an abend occurs, routines with the SYSTEM attribute will be retained, while routines with the USER attribute will be dropped. (For example, an HX command results in an abend.) The attribute is set by the RTNLOAD command.
- grpname
- is the name of the group the routine was loaded into using the RTNLOAD command.
Messages and Return Codes
- DMS065E option option specified twice [RC=24]
- DMS066E opt1 and opt2 are conflicting options [RC=24]
- DMS1088E Routine rtnname cannot be mapped because it is not loaded [RC=28]
- DMS1088E Routine rtnname cannot be mapped because it was not loaded with the specified attribute [RC=28]
- DMS1088E Routine rtnname cannot be mapped because it was not loaded with the specified group name [RC=28]
Additional system messages may be issued by this command. The reasons for these messages and their location are:
Reason | Location |
---|---|
Errors in command syntax | Command Syntax Error Messages |