Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

kc_load_module_str - Load modules (BS2000 systems) or shared objects/DLLs (Unix, Linux and Windows systems)

The data structure kc_load_module_str is defined for the object type KC_LOAD_MODULE. In the case of KC_GET_OBJECT, UTM returns the following in kc_load_module_str:

  • BS2000 systems: Information on the load modules that were generated with the KDCDEF control statement LOAD-MODULE.

  • Unix, Linux and Windows systems: Information on the shared objects or DLLs that were generated with the KDCDEF control statement SHARED-OBJECT.

Using a KDCADMI call with the operation code KC_MODIFY_OBJECT and the object type KC_LOAD_MODULE, you can replace individual load modules or shared objects or DLLs during the application run.

mod1

Data structure kc_load_module_str

-

char lm_name[32];

x(GID)

char version[24];

-

char lib[54];

-

char load_mode;

-

char poolname[50]; (only on BS2000 systems)

-

char version_prev[24];

-

char changeable;

-

char change_necessary; (only on BS2000 systems)

-

char altlib; (only on BS2000 systems)

-

char version_gen[24];

1 The contents of the field can be modified using KC_MODIFY_OBJECT; see "obj_type=KC_LOAD_MODULE"

The fields in the data structure have the following meanings:

lm_name



Contains the name of the load module or shared object or DLL.

version



UTM returns the version number of the load module, shared object or DLL currently loaded or is being loaded in version. If the load module could not be found in the library, then version contains blanks.

Only on BS2000 systems:

*HIGHEST-EXISTING

In the case of KC_MODIFY_OBJECT, the highest version of the load module existing in the library is loaded.

*UPPER-LIMIT (or @)

With KC_MODIFY_OBJECT the load module is loaded which was last entered in this PLAM library without an explicit version specification.

lib

The contents of lib have the following meaning:

  • In UTM applications on BS2000 systems, UTM returns the program library from which the load module will be loaded in lib.

  • In UTM applications running on Unix, Linux or Windows systems, lib contains the directory in which the shared object /DLL is stored.

load_mode


Contains the load mode of the load module, shared object or DLL. The load mode determines when and to where a load module/shared object/DLL will be loaded.


'U'

(STARTUP)
The load module or shared object/DLL is loaded as an independent unit at the start of the application.

Only on BS2000 systems:

  • When a load module is loaded, external references from all modules of the UTM application that were already loaded, from all nonprivileged subsystems and from the class 4 storage are resolved.


'O'

(ONCALL)
The load module/shared object/DLL is loaded as an independent unit when one of its program units or VORGANG exits are called for the first time.

Only on BS2000 systems:

  • When a load module is loaded, external references from all modules of the UTM application that were already loaded, from all non-privileged subsystems and from the class 4 storage are resolved.

  • If several processes are utilized at one time, then this load module must not be overwritten in the library (LIB=...) during the application run.
    Otherwise, different states of the load module may perhaps be executed in an application run.


'S'

(STATIC, only on BS2000 systems)
The load module is statically bound in the application program. The load module cannot be replaced during an application run.


'P'

(POOL, only on BS2000 systems)
The load module is loaded into a common memory pool (see poolname) at the start of the application. The load module consists only of one public slice (no private slice).


'T'

(POOL/ STARTUP, only on BS2000 systems)
The public slice of the load module is loaded into a common memory pool (see poolname) at the start of the application. The private slice belonging to the load module is loaded into the local process memory after that (private slice with load mode STARTUP).


'C'

(POOL/ONCALL, only on BS2000 systems)
The public slice of the load module is loaded into a common memory pool (see poolname) at the start of the application. The private slice belonging to the load module is loaded into the local process memory when the first program unit assigned to this load module is called (private slice with load mode ONCALL).

poolname (only on BS2000 systems)


poolname is only specified if the load module or its public slice will be loaded into a common memory pool (load_mode='P', 'T' or 'C'). poolname then contains the name of the common memory pool. The name can be up to 50 characters long.

version_prev


Contains the previous version of the load module/shared object/DLL, i.e. the version that was loaded before the last program change. 
If the load module/shared object/DLL has not yet been replaced or is not replaceable, then version_prev contains blanks.

changeable


Specifies if the load module/shared object/DLL can be replaced.


'Y'

The load module/shared object/DLL can be replaced during the application run.


'N'

The load module/shared object/DLL cannot be replaced during the application run.

change_necessary (only on BS2000 systems)


change_necessary is only relevant for load modules that either lie completely within a common memory pool or whose public slice lies in common memory pool. 
change_necessary specifies if this load module has been marked for a program change.

Load modules in the common memory pool must then be marked for a program change with KC_MODIFY_OBJECT. The actual exchange must then be executed with KC_CHANGE_APPLICATION.


'Y'

The load module is marked for exchange. A program change using KC_CHANGE-APPLICATION is necessary to replace the load module.


'N'

The load module is not marked for exchange.

altlib (only on BS2000 systems)


Specifies if the load module will be loaded with the BLS autolink function.


'Y'

Load with autolink


'N'

Load without autolink

version_gen


Contains the version with which the load module/shared object/DLL has been generated.