MVS Jan 2005.p65 - CBT Tape
MVS Jan 2005.p65 - CBT Tape
MVS Jan 2005.p65 - CBT Tape
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
* subtask. *<br />
* *<br />
* Register Usage Conventions: *<br />
* *<br />
* RØ - R1 : work registers, but generally available for use *<br />
* by calls to system functions *<br />
* R2 : used to save the incoming parameter address *<br />
* R3 - R9 : work registers *<br />
* R1Ø - R11 : reserved (future base register expansion) *<br />
* R12 : base register *<br />
* R13 : DSA/workarea address *<br />
* R14 - R15 : work registers, return address and return code, but *<br />
* generally available for use by calls to system *<br />
* functions *<br />
*--------------------------------------------------------------------*<br />
*--------------------------------------------------------------------*<br />
* Routine: DETACH *<br />
* *<br />
* Function: To provide <strong>MVS</strong> DETACH capabilities from an IBM *<br />
* C/C++ program. *<br />
* *<br />
* Arguments: TCB area address *<br />
* STAE option indicator address (STAE/NOSTAE) *<br />
* *<br />
* Return: Ø if the DETACH is successful *<br />
* -1 task was DETACHed while active *<br />
* -8 incorrect number of parms. the DETACH() function *<br />
* call requires a tcb address parm. *<br />
* -9 no parms were detected on entry to DETACH() *<br />
* *<br />
* C Usage: i = DETACH(&tcb, &stae_opt); *<br />
*---------------------------------------------------------------------*<br />
DETACH CSECT<br />
DETACH AMODE 31<br />
DETACH RMODE ANY<br />
EDCPRLG BASEREG=R12,DSALEN=WORKLEN<br />
LR R2,R1 Save incoming parm addr<br />
USING DETAWORK,R13 Addressability to temp storage<br />
*---------------------------------------------------------------------*<br />
ST R2,PARMØ Save incoming parm address<br />
LTR R2,R2 Parms ok?<br />
BZ RETNEGØ9 No - return -9<br />
L R9,Ø(,R2) Get buffer address<br />
ST R9,DETATCB Save TCB address<br />
TM DETATCB,X'8Ø' Is this the last parm?<br />
BO RETNEGØ8 Yes - return -8<br />
L R9,4(,R2) Get buffer address<br />
ST R9,DETASTAE Save STAE option indicator addr<br />
TM DETASTAE,X'8Ø' Is this the last parm?<br />
BNO RETNEGØ8 No - return -8<br />
40 © 2005. Xephon USA telephone (214) 340 5690, fax (214) 341 7081.