*************************************************************************
* Test SMMC_RESPONSE -- if OK, then branch round error handling. *
*************************************************************************
* *
CLI SMMC_RESPONSE,SMMC_OK CHECK RESPONSE AND...
BE STOK ...IF OK, BYPASS ERROR ROUTINES
* *
.
.
.
error-handling routines
.
.
.
**************************************************************************
* The next section maps TRANSTOR on the acquired storage. *
**************************************************************************
STOK DS 0H
USING TRANSTOR,R6 MAP ACQUIRED STORAGE
ST R6,0(R5) SAVE STORAGE ADDRESS IN FIRST
* 4 BYTES OF STORAGE ADDRESSED
* BY UEPXSTOR
*
LA R5,4(R5) ADDRESS 4-BYTE OFFSET
DROP R5 REUSE REGISTER 5 TO BASE ALL
USING DFHxxyy_ARG,R5 FOLLOWING XPI PARAMETER LISTS
* AT 4-BYTE OFFSET INTO STORAGE
* ADDRESSED BY UEPXSTOR
.
.
.
rest of user exit program
.
.
.
*
*************************************************************************
* When the rest of the exit program is completed, free the storage
* and return.
*************************************************************************
*
DROP R5 REUSE REGISTER 5 TO MAP DFHSMMC
USING DFHSMMC_ARG,R5 XPI PARAMETER LIST
*
L R13,UEPSTACK ADDRESS KERNEL STACK
*
*************************************************************************
* Issue the DFHSMMCX macro call, specifying: *
* *
* CALL -- the macro is to be called immediately. *
* *
* CLEAR -- initialize the parameter list before inserting values. *
* *
* IN -- input values follow. *
* *
* FUNCTION(FREEMAIN) -- release storage *
* ADDRESS((R6)) -- address of storage is in register 6. *
* STORAGE_CLASS(USER) -- class of acquired storage was *
* 31-bit user storage. *
* *
Figure 14. Global user exit program with XPI (part 3)
Chapter 3. The user exit programming interface (XPI) 317