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.
- 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
- 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.
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
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
- 4
- Input invalid, check for warning messages.
- 12
- Unsupported exit specified for the EXIT keyword.
Messages
- WARNING: EXIT NAME DIFFERS FROM CURRENT CSECT NAME
- WARNING: MAPMAC VALUE MAPMAC IS NOT RECOGNIZED
- EXIT NAME EXIT IS NOT SUPPORTED