Using Callable Services Libraries

CMS includes two callable services libraries named VMLIB and VMMTLIB. VMLIB contains CSL routines that:
  • Call CMS file system management functions (CMS file pool and minidisk I/O)
  • Call CMS file pool administration functions
  • Take advantage of CMS's data integrity capabilities
  • Access the current generation of REXX variables
  • Interface with the z/VM® command environment through a REXX exec
  • Invoke the CMS Extract/Replace facility, which lets applications obtain or modify selected system information without release or z/VM system dependencies
  • Call data space services available on CMS
  • Call program-to-program communications functions using Systems Application Architecture® (SAA) Common Programming Interface (CPI) Communications (also known as SAA communications interface)
  • Call SAA resource recovery (also known as CPI resource recovery) functions
  • Provide CMS file pool exits
VMMTLIB contains CSL routines that:
  • Call CMS application multitasking functions
  • Call OpenExtensions services
  • Get the value set for the workstation display address

DFSMS/VM provides two additional callable services libraries. FSMPPSI contains Removable Media Services (RMS) Tape Library Dataserver interface routines. FSMPSI contains DFSMS/VM installation-wide exit routines.

Your applications can call all these CSL routines, much like subroutines, to perform z/VM services without writing unique assembler subroutines. These calls are not resolved until the call is made (as opposed to when the program is linked or loaded). This lets you make changes to a CSL routine without having to relink the routine to the application program, recompile the application, or modify any of the program's source statements.

The following books provide information about the CSL routines listed above:

You can also create your own CSL routines and build your own CSL. You can use these routines the same way you would use the CSL routines supplied with VMLIB and VMMTLIB. See z/VM: CMS Application Development Guide for Assembler for information on creating your own CSL routines and building a CSL.

The following information describes how to load a CSL, manipulate CSL routines, and invoke a CSL routine.