27.04.2013 Views

MVS Jan 2005.p65 - CBT Tape

MVS Jan 2005.p65 - CBT Tape

MVS Jan 2005.p65 - CBT Tape

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!