IDENTIFY — Add an entry name

Description

The IDENTIFY macro is used to add an entry name to a copy of a load module currently in virtual storage. The copy must be one of the following:
  • A copy that satisfied the requirements of a LOAD macro issued during the execution of the current task.
  • The last load module given control, if control was passed to the load module using a LINK, LINKX, ATTACH, ATTACHX, XCTL, or XCTLX macro.
Note: The IDENTIFY macro may not be issued by an asynchronous exit routine. The IDENTIFY macro assigns the identified entry point as reentrant. Callers issuing this macro should be sure that their programs have been marked as reenterable.
The IDENTIFY service sets the addressing mode of the entry name that was added equal to the addressing mode of the major entry name. The system assigns the major entry name according to how the load module was constructed.
  • If the load module was constructed using the linkage editor (and brought into virtual storage via program fetch or virtual fetch, the major entry name is the name of the load module in the partitioned data set directory (not an alias to that member).
  • If the load module was brought into storage by the loader, the major entry name is either the name that the user provided as input to the loader or the name that the loader used as a default.

If an authorized caller creates an entry name for a module in the link pack area, the IDENTIFY service places an entry for the alias on the active link pack area queue. If an unauthorized caller creates an entry name for a module in the link pack area, the IDENTIFY service places an entry for the alias on the task's job pack queue.

If an unauthorized caller creates an entry name for an authorized module, the IDENTIFY service marks the new entry as unauthorized. In all other cases, the new entry name receives the same level of authorization as the main entry point.

The caller cannot have an EUT FRR established.

Syntax

The IDENTIFY macro is written as follows:

Syntax Description
   
   name name: Symbol. Begin name in column 1.
   
One or more blanks must precede IDENTIFY.
   
IDENTIFY  
   
One or more blanks must follow IDENTIFY.
   
EP=entry name entry name: Symbol
EPLOC=entry name addr entry name addr: RX-type address, or register (0) or (2) - (12).
   
,ENTRY=entry addr added entry addr added: RX-type address, or register (1) or (2) - (12).
   

Parameters

The parameters are explained as follows:

EP=entry name
EPLOC=entry name addr
Specifies the entry name or address of the entry name. The name does not have to correspond to any symbol or name in the load module, and must not correspond to any name, alias, or added entry name for a load module in the link pack area queue, or the job pack area of the job step. If EPLOC is coded, the name must be padded to eight bytes, if necessary.
,ENTRY=entry addr added
Specifies the virtual storage address of the entry point being added. If the program that issues the IDENTIFY macro is running in 24-bit addressing mode, the value for entry addr added must be a 24-bit address.
Note: If bit 31 of the entry point address is on, the system will turn it off.

Return codes

When control is returned, register 15 contains one of the following return codes:

Hexadecimal Return Code Meaning
00 Successful completion of requested function.
04 Entry name and address already exist.
08 Entry name duplicates the major name of a load module currently in virtual storage; entry address was not added.
0C Entry address is not within an eligible load module; entry address was not added.
10 Request issued by an asynchronous exit routine; entry address was not added.
14 Entry name duplicates the name already used for a minor entry or for an entry created by another IDENTIFY request, and the entry point addresses are different; the current request is rejected.
18-1C An internal error occurred. Record the return code and contact the appropriate IBM® support personnel.
24 An unexpected error occurred.
28 The address specified by the EPLOC parameter was fetch protected.
2C An internal error occurred. Record the return code and contact the appropriate IBM support personnel.
30 Unsuccessful processing due to a system queue area (SQA) storage shortage.
34 Unsuccessful processing due to a local system queue area (LSQA) storage shortage.
38 Unsuccessful processing due an error in the job pack area. Record the return code and contact the appropriate IBM support personnel.

Example

Add an entry name (PGMTAL2A) to a load module in virtual storage. Register 3 contains the entry point address.
IDENTIFY     EP=PGMTAL2A,ENTRY=(R3)