The IDENTIFY_PROGRAM call

IDENTIFY_PROGRAM locates the program that is associated with an address. If the address is in a CICS-defined program, the call returns information about that program.

If the address is not associated with a loader domain CICS-defined program, the request fails with a REASON value of INSTANCE_NOT_FOUND.

IDENTIFY_PROGRAM

IDENTIFY_PROGRAM
DFHLDLDX [CALL,]
      [CLEAR,]
      [IN,
      FUNCTION(IDENTIFY_PROGRAM),
      ADDRESS(name4 | (Rn)| *),]
      [OUT,
      [PROGRAM_NAME(name8 | *),]
      [PROGRAM_ATTRIBUTE(name1 | (Rn) | *),]
      [PROGRAM_LENGTH(name4 | (Rn) | *),]
      [LOAD_POINT(name4 | (Ra) | *),]
      [ENTRY_POINT(name4 | (Ra) | *),]
      RESPONSE(name1 | *),
      REASON(name1 | *)]

This command is threadsafe.

ADDRESS(name4 | (Rn) | *)
The storage address that is used to identify the program.
name4
The name of a 4-byte fullword where the storage address is stored.
(Rn)
A register that is set to the storage address.
PROGRAM_NAME(name8 | * )
Returns the name of the program that contains the storage address. The PROGRAM_NAME corresponds to the CICS-defined program name, not a CSECT.
name8
The name of a location to contain an 8-byte program name.
PROGRAM_ATTRIBUTE(name1 | (Rn) | * )
Returns the program attribute.
name1
The name of a 1-byte location to receive the program attribute.
(Rn)
A register in which the low-order byte receives the program attribute and the other bytes are set to zero. The register can have the values RELOAD, RESIDENT, REUSABLE, or TRANSIENT.
RELOAD
The program is not reusable, and therefore several copies of the program might be loaded. A copy is removed from storage when a RELEASE_PROGRAM call (for that copy) is issued.
RESIDENT
There is a single copy of the program that is not removed from storage unless it is deleted. RESIDENT programs must be at least quasi-reentrant. Any program of PROGRAM_TYPE SHARED has the RESIDENT attribute by default. The DELETE_PROGRAM call has no effect on this type of RESIDENT program.
REUSABLE
The program is similar to RESIDENT, except that if the program is not in use, CICS can remove it from storage to optimize storage use.
TRANSIENT
The program is similar to RESIDENT, except that the program is removed from storage as soon as its use count drops to zero.
PROGRAM_LENGTH(name4 | (Rn) | * )
Returns the length of the named program.
name4
The name of a 4-byte location to receive the length in bytes, expressed in binary.
(Rn)
A register to contain the length in bytes, expressed in binary.
LOAD_POINT(name4 | (Ra) | * )
Returns the load point address of the program.
name4
The name of a 4-byte location to receive the loaded address.
(Ra)
A register to contain the load address.
ENTRY_POINT(name4 | (Ra) | * )
Returns the entry point address of the program.
name4
The name of a 4-byte location to receive the 31-bit entry address.
(Ra)
A register to receive the entry address.

RESPONSE and REASON values for IDENTIFY_PROGRAM

RESPONSE REASON
OK None
EXCEPTION INSTANCE_NOT_FOUND
DISASTER None
INVALID None
KERNERROR None
PURGED None
Note: For more information, refer to the explanation of RESPONSE and REASON in Making an XPI call.