*=====================================================================*
* FREEMAIN_SHARED - Free shared storage *
* Free the shared storage associated with this command. *
* Registers: *
* R0 = Used by EXEC CICS call *
* R1 = Used by EXEC CICS call *
* R6 = Link Register - Return Address *
* R11= EIB register (set on entry) *
* R12= Work register *
* R14= Used by EXEC CICS call *
* R15= Used by EXEC CICS call *
* Logic: *
* Freemain_Shared: *
* Address shared storage *
* If eyecatcher ¬= 'XTSEREQ Storage' then *
* Call Error(Freemain_Logic_Error) *
* Else *
* EXEC CICS FREEMAIN DATAPOINTER(UEPTQTOK) RESP(resp) *
* If resp ¬= OK then *
* Call Error(Freemain_Failed) *
* End If *
* End If *
* Return *
*=====================================================================*
FREEMAIN_SHARED DS 0H
L R12,UEPTQTOK Fetch token address
L R12,0(R12) Address shared storage address
USING SHARED_STORAGE,R12 ..Using R12
CLC SHARED_EYECATCHER,EYE_CATCHER Is this our storage?
BNE ERROR8 ..No Goto Error routine
DROP R12 Drop R12
EXEC CICS FREEMAIN DATAPOINTER(R12) RESP(RESP)
CLC RESP,DFHRESP(NORMAL) FREEMAIN worked OK?
BNE ERROR9 ..No Goto Error routine
L R12,UEPTQTOK Fetch token address
XC 0(4,R12),0(R12) Clear token address
BR R6 Return to caller
EJECT ,
*=====================================================================*
* Trace Routines *
* Issue a Trace XPI call *
* *
* Registers: *
* R0 = Used by XPI call *
* R1 = DFHTRPT plist *
* R6 = Link Register - Return Address *
* R12= Work register *
* R13= EISTG register (set by DFHEIENT) *
* Kernel Stack entry *
* R14= Used by XPI call *
* R15= Used by XPI call *
*=====================================================================*
Figure 113. Example exit program for the XTSEREQ exit (Part 13 of 16)
example XTSEREQ global user exit program
Appendix E. The example program for the XTSEREQ global user exit, DFH$XTSE 819