Additional Entry Points

Through the use of linkage editor facilities you can specify as many as 17 different names (a member name and 16 aliases) and associated entry points within a load module. Take note that all names are expected to be unique across all possible libraries where a module may be retrieved from; and all aliases are expected to have the related primary module name in the same library. It is only through the use of the member name or the aliases that a copy of the load module can be brought into virtual storage. Once a copy has been brought into virtual storage, however, additional entry points can be provided for the load module, subject to one restriction. The load module copy to which the entry point is to be added must be one of the following:

Add the entry point by using the IDENTIFY macro. The IDENTIFY macro cannot be issued by supervisor call routines, SRBs, or asynchronous exit routines established using other supervisor macros.

When you use the IDENTIFY macro, you specify the name to be used to identify the entry point, and the virtual storage address of the entry point in the copy of the load module. The address must be within a copy of a load module that meets the requirements listed above; if it is not, the entry point will not be added, and you will be given a return code of 0C (hexadecimal). The name can be any valid symbol of up to eight characters, and does not have to correspond to a name or symbol within the load module. You are responsible for not duplicating a member name or an alias in any of the libraries. Duplicate names cause the system to return a return code of 8.

The IDENTIFY service sets the addressing mode of the alias entry point equal to the addressing mode of the major entry point.

If an authorized program creates an alias for a module in the pageable link pack area or active link pack area, the IDENTIFY service places an entry for the alias on the active link pack area queue. If an unauthorized user creates an alias for a module in the pageable link pack area or active link pack area, the IDENTIFY service places an entry for the alias on the job pack queue of the requesting job.