z/OS MVS Program Management: Advanced Facilities
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Module Map

z/OS MVS Program Management: Advanced Facilities
SA23-1392-00

Obtaining needed information about entry points and other external symbols in a program object often requires many calls to the binder API. Applications can avoid this for load modules by reading the PDS member directly. They may find most of the information they need in the CESD. This option is not available for programs stored in a PDSE or in UNIX files.

The binder module map may allow the writing of single-path code to handle either format, and with a much smaller number of binder API calls than was previously necessary. In addition, if the map is part of a loaded module (MODMAP=LOAD specified when building the module) it may be located directly, as explained below.

The binder writes a module map as part of the saved module under the following circumstances:

  1. There is a strong reference to IEWBMMP in one of the modules input to a bind.
  2. The binder option MODMAP=LOAD or MODMAP=NOLOAD is specified.

If it exists, the module map is always in section IEWBMMP. For a module with only one text class (load module and some program objects) the map is in class B_TEXT. For program objects that already contain more than one text class, the map is built in class B_MODMAP.

If the map is in a loadable class, it may be found in the loaded module as follows:

  1. IEWBMMP could be located from an address constant referencing that symbol, if the address constant is in a known location.
  2. If IEWBLIT exists (built by the binder for program objects containing multiple text classes or user-defined classes), then the entry for class B_MODMAP will contain the address of that class in the loaded module.
  3. The map will be at the end of the first segment (the segment containing the entry points). The last doubleword of the map contains the module map locator that can be used to find the module map. The module map locator is described under Structure of the module map.

If the module map is in a noload class (MODMAP=NOLOAD), the map is in section IEWBMMP and class B_MODMAP. The contents are only retrievable using the binder GETD API call (or fast data GD call) with a text buffer. The contents are also retrievable in the same way if the module map is in a load class (MODMAP=LOAD); However, the class will be B_TEXT instead of B_MODMAP if there is only one text class.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014