When you use an exit, the compiler provides a user-exit work area where you can save the address of GETMAIN storage obtained by the exit module. This work area allows the module to be reentrant.
The user-exit work area is 4 fullwords residing on a fullword boundary. These fullwords are initialized to binary zeros before the first exit routine is invoked. The address of the work area is passed to the exit module in a parameter list. After initialization, the compiler makes no further reference to the work area.
You need to establish your own conventions for using the work area if more than one exit is active during the compilation. For example, the INEXIT module uses the first word in the work area, the LIBEXIT module uses the second word, the PRTEXIT module uses the third word, and the ADEXIT module uses the fourth word.
related references
Processing of INEXIT
Processing of LIBEXIT
Processing of PRTEXIT
Processing of ADEXIT