When DBL is called with a START/LOAD-EXECUTABLE-PROGRAM or START/LOAD-PROGRAM command or by means of a BIND or ASHARE macro, it generates a load unit which it loads into main memory. The structure of a load unit is shown in figure 4.
A load unit contains all the modules loaded with one load call. This means all the modules specified in the load call (primary input), plus any modules inserted by the autolink function or as a result of INCLUDE statements (secondary input).
The modules may be object modules (OMs) or LLMs. They contain the program definitions (CSECTs and ENTRYs). Each load unit is contained within a context that is defined by the user (see "Context concept"). If the user does not specify a context, the default context with the name “LOCAL#DEFAULT” is used.
Load information for a load unit
The user can define the load information for a load unit independently in the load call (using the LOAD-INFORMATION and TEST-OPTIONS operands). These enable the user to select whether or not the load unit is to contain an external symbol dictionary.
For LLMs, this information can be loaded only if it was created by BINDER (BINDER statement SAVE-LLM, operand SYMBOL-DICTIONARY=*YES).
For object modules (OMs), the load information can always be loaded.
For prelinked OMs, the load information may be reduced using the TSOSLNK linkage editor.
If the load unit is to include an external symbol dictionary, the following information can be selected for the load unit:
External symbol dictionary containing program definitions
(operand LOAD-INFORMATION=*DEFINITIONS)
An external symbol dictionary containing the program definitions of all modules in the load unit is loaded. Program definitions are control sections (CSECTs), entry points (ENTRYs), COMMON sections, dummy sections (DSECTs), external dummy sections (XDSEC-Ds) and module names. DBL needs this information in order toresolve external references between modules loaded as a result of the current load call, and modules loaded by a later load call
output link and start information to the user
support debugging and diagnostic aids (AID commands).
External symbol dictionary containing references
(operand LOAD-INFORMATION=*REFERENCES)
An external symbol dictionary containing the resolved references of all modules in the load unit is loaded. References are external references (EXTRNs), V-type constants, weak external references (WXTRNs) and external dummy sections (XDSEC-Rs).DBL needs this information to unlink load units after loading and to perform delayed processing of external references.External symbol dictionary for constructing the DBL map
(operand LOAD-INFORMATION=*MAP)
Only an external symbol dictionary required for constructing the DBL map is temporarily loaded. The ESD is unloaded as soon as the DBL map is complete.LSD information (operand TEST-OPTIONS=*AID)
LSD (list for symbolic debugging) information is loaded. This information is required by the debugging and diagnostic aids (AID commands). LSD information is useful only when the load unit contains program definitions. The LSD information cannot be loaded if the value specified for the LOAD-INFORMATION operand is *NONE or *MAP.