Removes a branch from a transaction and returns the outcome of the transaction. Format SYS$END_BRANCH [efn] ,[flags] ,iosb ,[astadr] ,[astprm] ,tid ,bid C Prototype int sys$end_branch (unsigned int efn, unsigned int flags, struct _iosb *iosb, void (*astadr)(__unknown_params), int astprm, unsigned int tid [4], unsigned int bid [4]);
1 – Arguments
efn OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by value Number of the event flag set when the service completes. If this argument is omitted, event flag 0 is used. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value Flags specifying options for the service. The flags argument is a longword bit mask in which each bit corresponds to an option flag. The $DDTMDEF macro defines symbolic names for these option flags, described in $END_BRANCH Option Flags. All undefined bits must be 0. If this argument is omitted, no flags are used. Table SYS-14 $END_BRANCH Option Flags Flag Name Description DDTM$M_SYNC Specifies successful synchronous completion by returning SS$_SYNCH. When SS$_SYNCH is returned, the AST routine is not called, the event flag is not set, and the I/O status block is not filled in. DDTM$M_ Indicates that the service should return to the NOWAIT caller without waiting for final cleanup. Note that $END_BRANCHW with the DDTM$M_NOWAIT flag set is not equivalent to $END_BRANCH. The latter returns when the operation has been queued. The former does not return until the operation has been initiated. The full range of status values may be returned from a nowait call. iosb OpenVMS usage:io_status_block type: quadword (unsigned) access: write only mechanism: by reference The I/O status block in which the following information is returned: o The completion status of the service. This is returned as a condition value. See the Condition Values Returned section for more information. o The outcome of the transaction. If the service completes successfully, the outcome of the transaction is commit. If it returns SS$_ABORT, the outcome of the transaction is abort. o An abort reason code that gives one reason why the transaction aborted, if the completion status of the service is SS$_ABORT. The $DDTMMSGDEF macro defines symbolic names for these abort reason codes. See $ACK_EVENT for a list of the codes that are currently defined. Refer to the VSI OpenVMS System Services Reference Manual to view the I/O status block diagram. astadr OpenVMS usage:ast_procedure type: procedure entry mask access: call without stack unwinding mechanism: by reference The AST routine executed when the service completes, if SS$_ NORMAL is returned in R0. The astadr argument is the address of the entry mask of this routine. The routine is executed in the same access mode as that of the caller of the $END_BRANCH service. astprm OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value The AST parameter passed to the AST routine specified by the astadr argument. tid OpenVMS usage:trans_id type: octaword (unsigned) access: read only mechanism: by reference The identifier (TID) of the transaction from which the branch is to be removed. bid OpenVMS usage:branch_id type: octaword (unsigned) access: read only mechanism: by reference The identifier (BID) of the branch to be removed from the transaction.