Invoking the EELEXIT macro

The sample event tracking exits shipped with the agent for z/OS are written in assembler language. The event tracking code in these exits is generated by an assembler macro called EELEXIT. The following sections describe how to invoke the EELEXIT macro.

Invoking EELEXIT in SMF exits

EELEXIT establishes its own addressability in SMF exits. It saves and restores all used registers. To do this, it expects Register 13 to point to a standard z/OS® save area.

There are two ways to invoke the EELEXIT macro in an SMF exit:
  • Invoke EELEXIT with all registers unchanged since the exit was called (except Register 15).
  • Save all registers on entry to the exit and then invoke EELEXIT by specifying the address of the initial save area.

In both cases, EELEXIT must be invoked in Supervisor state, PSW key 0.

Invoking EELEXIT in JES exits

In JES exits, EELEXIT must be invoked in Supervisor state, PSW key 1. EELEXIT expects code addressability to be already established. It also expects registers to be set up as follows:
  • EXIT7
    R0
    JCT read/write indicator (JES2 SP Version 3 and earlier); address of a parameter list mapped by the JES2 $XPL macro (JES2 SP Version 4 and later).
    R1
    Address of the JCT being read or written.
    R13
    Address of the current PCE.
  • EXIT51
    R1
    Address of a parameter list mapped by the JES2 $XPL macro (JES2 with z/OS v1.7, or later).
  • IATUX09
    R11
    Address of the current FCT entry.
    R11
    Address of the TVTABLE entry.
    R13
    Address of the input-service data area for the current function.
  • IATUX19
    R8
    Address of the current JDS entry.
    R9
    Address of the current RESQUEUE entry.
    R11
    Address of the current FCT entry.
    R12
    Address of the current TVTABLE entry.
Note that these register conventions are already set up when the exit is called. You must invoke EELEXIT while these registers are unchanged.

If a shipped JES exit sample (or the EELEXIT macro) has been user–modified, make sure that it does not prevent or filter the tracking of the agent for z/OS itself.

See the NOTES section of the EELEXIT prolog for information about the register contents that are destroyed by EELEXIT in JES exits.

Macro invocation syntax for EELEXIT

EELEXIT produces event tracking exit code by generating assembler code to perform in an SMF or JES exit.

Syntax


1  EXIT ( exit name )?  REG13 ( address of save area )?  MAPMAC {
2.1! YES
2.1 NO
1 }?  SETUID {
2.1 YES
2.1! NO
1 }

Parameters

EXIT = exit name
A required keyword defining the name of the exit in which the macro is used. The following names can be specified: IEFACTRT, IEFUJI, EXIT7, and EXIT51. For exits IEFACTRT and IEFUJI, a warning message is issued if the name of the current CSECT differs from the name specified by the EXIT keyword.
REG13 = address of save area
An optional keyword defining the address of the current-register save area when the SMF or JES2 exit was called. The default for this keyword depends on the name specified by the EXIT keyword. If the current exit is EXIT7, the default is PCELPSV. In all other cases, the default is the second fullword in the current save area (if the current save area is properly chained, and the previous save area contains the registers at entry to the exit).

If the default does not apply, the REG13 keyword must be specified. Its value must be a fullword pointing to the save area that was used to store all the registers when the exit was entered.

MAPMAC = {YES|NO}
An optional keyword specifying whether the macro should generate the required assembler mapping macros. The default is to generate these mapping macros. The following mapping macros are required by EELEXIT code: CVT, IEFJESCT, IEFJSSOB, and IEFJSSIB. The IEFACTRT exit also requires the IEFJMR macro.
SETUID = {YES|NO}
An optional keyword specifying whether the macro should generate code to place the current user ID in the JMRUSEID field when the IEFUJI exit is taken. Specify YES to generate this code. If you specify NO, which is the default, the JMRUSEID field is not updated. You are recommended to specify YES if you use the current user ID to filter data set close events. You need these mapping macros when you specify YES: IHAPSA, IHAASCB, IHAASXB, and IHAACEE.

Return codes

The following return codes can be generated at assembly time:
4
Input invalid, check for warning messages.
12
Unsupported exit specified for the EXIT keyword.

Messages

The following messages can be generated at assembly time:
  • WARNING: EXIT NAME DIFFERS FROM CURRENT CSECT NAME
  • WARNING: MAPMAC VALUE MAPMAC IS NOT RECOGNIZED
  • EXIT NAME EXIT IS NOT SUPPORTED