IBM SC34-6814-04 User Manual

Page 905

Advertising
background image

*=====================================================================*
*

TS_REQUEST_COMPLETE - Invoked at XTSEREQC exit point

*

*

Free any shared storage that was acquired during previous

*

*

invocation at XTSEREQ.

*

*

*

*

Registers:

*

*

R1 = Work register

*

*

R6 = Linkage register

*

*

R8 = Command Parameter List (CLPS)

*

*

*

*

Logic:

*

*

TS_Request_Complete:

*

*

If called recursively then

*

*

call Error(Recursive_Call2)

*

*

Else

*

*

If the Command GROUP code is not a TS request then

*

*

call Error(Invalid_Group_Code2)

*

*

Else

*

*

If UEPTQTOK->token ¬= 0 then Call Freemain_Shared_Plist

*

*

End If

*

*

End If

*

*

Return

*

*=====================================================================*
TS_REQUEST_COMPLETE DS

0H

*

Check for possible recursion
L

R1,UEPRECUR

Address of recursive count

LH

R1,0(R1)

Fetch count

LTR

R1,R1

Has exit been invoked recursively?

BNZ

ERROR5

..Yes Branch to error routine

*
*

Check that the Command GROUP code corresponds to a TS request
L

R8,UEPCLPS

Fetch address of Command Plist

USING TS_ADDR_LIST,R8

Use R8 to address CLPS

L

R1,TS_ADDR0

Address the EID..

USING TS_EID,R1

..with Register 1

CLI

TS_GROUP,TS_TEMPSTOR_GROUP Is this a TS request?

BNE

ERROR6

..No

Branch to error routine

DROP

R1

Drop addressability to EID

DROP

R8

Drop addressability to CLPS

*

L

R1,UEPTQTOK

Fetch address of Token

L

R1,0(R1)

Fetch actual token

LTR

R1,R1

Did XTSEREQ GETMAIN any storage?

BZ

RETURN

..No

Return to caller

BAL

R6,FREEMAIN_SHARED

..Yes Issue FREEMAIN

B

RETURN

Return to caller

EJECT ,

*

Figure 140. Example exit program for the XTSEREQ exit (part 7)

Appendix F. The example program for the XTSEREQ global user exit, DFH$XTSE

883

Advertising