IBM SC34-6814-04 User Manual

Page 902

Advertising
background image

*

Registers:

*

*

R1 = UEPAR plist (set on entry)

*

*

= Work register

*

*

R2 = UEPAR plist

*

*

R3 = Program base register (set by DFHEIENT)

*

*

R6 = Linkage register

*

*

R11= EIB register

*

*

R13= EISTG register (set by DFHEIENT)

*

*

R15= Work register

*

*

User Exit Return Code

*

*

*

*

Logic:

*

*

DFH$XTSE:

*

*

Exec Interface Entry

*

*

Address DFHUEPAR plist

*

*

Set OK Return Code

*

*

Address the EIB

*

*

Trace entry

*

*

Select Exitid

*

*

When(XTSEREQ) then call TS_Request

*

*

When(XTSEREQC) then call TS_Request_Complete

*

*

Otherwise call Error(Invalid_Exit)

*

*

End Select

*

*

Trace exit

*

*

Set Exit return code

*

*

Return

*

***********************************************************************
DFH$XTSE DFHEIENT
DFH$XTSE AMODE 31
DFH$XTSE RMODE ANY

LR

R2,R1

DFHUEPAR plist provided by caller

USING DFHUEPAR,R2

Use R2 to address UEPAR PLIST

*

LA

R15,UERCNORM

Set OK Response

ST

R15,RETCODE

in working storage

*

EXEC CICS ADDRESS EIB(R11)
USING DFHEIBLK,R11

*

BAL

R6,TRACE_ENTRY

Trace program entry

*

L

R1,UEPEXN

Address of the 1 byte Exit Id

CLI

0(R1),XTSEREQ

Is this XTSEREQ exit?

BE

TS_REQUEST

..Yes Branch to routine

CLI

0(R1),XTSEREQC

Is this XTSEREQC exit?

BE

TS_REQUEST_COMPLETE .. Yes Branch to routine

B

ERROR1

Otherwise Branch to error routine

*
RETURN

DS

0H

Return point

BAL

R6,TRACE_EXIT

Trace program exit

*

L

R15,RETCODE

Fetch return code

DFHEIRET RCREG=15

Return to CICS

EJECT ,

Figure 137. Example exit program for the XTSEREQ exit (part 4)

880

Customization Guide

Advertising