/*{ ** Name: OPU_MARK - Mark a point in the stack ULM memory stream ** ** Description: ** This routine marks a point in the ULM memory stream. The mark may ** be later used to reclaim unused memory. [@comment_line@]... ** ** Inputs: ** global - ** State info for the current query. ** ulmrcb - ** address of local control block, or NULL if ** global->ops_mstate.ops_ulmrcb should be used ** mark - ** Pointer to uninitialized memory of sufficient size. ** ** Outputs: ** mark - ** Filled in with info marking the current point in the memory stream. ** ** Returns: ** Nothing ** Exceptions: ** none ** ** Side Effects: ** none ** ** History: ** 18-apr-88 (seputis) ** initial creation ** 11-oct-2006 (hayke02) ** Send E_OP0002_NOMEMORY to errlog.log. This change fixes bug 116309. [@history_template@]... */ VOID opu_mark( OPS_STATE *global, ULM_RCB *ulmrcb, ULM_SMARK *mark) { DB_STATUS ulmstatus; /* return status from ULM */ if (!ulmrcb) { ulmrcb = &global->ops_mstate.ops_ulmrcb; /* use global ulmrcb if ** control block is not defined */ ulmrcb->ulm_streamid_p = &global->ops_mstate.ops_streamid; /* mark memory ** in the global stream */ } /* store the mark to be initialized */ ulmrcb->ulm_smark = mark; ulmstatus = ulm_mark( ulmrcb ); if ( DB_FAILURE_MACRO(ulmstatus) ) { if (ulmrcb->ulm_error.err_code == E_UL0005_NOMEM) { opx_lerror(E_OP0002_NOMEMORY, 0, 0, 0, 0, 0); opx_error( E_OP0002_NOMEMORY); /* out of memory */ } #ifdef E_OP0093_ULM_ERROR else opx_verror( ulmstatus, E_OP0093_ULM_ERROR, ulmrcb->ulm_error.err_code); /* check for error */ #endif } }
/*{ ** Name: OPU_MSMEMORY_MARK - Mark a point in the stack ULM memory stream ** ** Description: ** This routine marks a point in the ULM memory stream. The mark may ** be later used to reclaim unused memory. [@comment_line@]... ** ** Inputs: ** global - ** State info for the current query. ** global->ops_mstate.ops_ulmrcb - ** The ULM control block. ** global->ops_mstate.ops_sstreamid - ** The stream id. ** mark - ** Pointer to uninitialized memory of sufficient size. ** ** Outputs: ** mark - ** Filled in with info marking the current point in the memory stream. ** ** Returns: ** Nothing ** Exceptions: ** none ** ** Side Effects: ** none ** ** History: ** 19-July-87 (eric) ** written ** 11-oct-2006 (hayke02) ** Send E_OP0002_NOMEMORY to errlog.log. This change fixes bug 116309. [@history_template@]... */ VOID opu_Msmemory_mark( OPS_STATE *global, ULM_SMARK *mark) { DB_STATUS ulmstatus; /* return status from ULM */ /* store the stream id */ global->ops_mstate.ops_ulmrcb.ulm_streamid_p = &global->ops_mstate.ops_sstreamid; /* store the mark to be initialized */ global->ops_mstate.ops_ulmrcb.ulm_smark = mark; if ( (ulmstatus = ulm_mark( &global->ops_mstate.ops_ulmrcb )) != E_DB_OK ) { if (global->ops_mstate.ops_ulmrcb.ulm_error.err_code == E_UL0005_NOMEM) { opx_lerror(E_OP0002_NOMEMORY, 0, 0, 0, 0, 0); opx_error( E_OP0002_NOMEMORY); /* out of memory */ } #ifdef E_OP0093_ULM_ERROR else opx_verror( ulmstatus, E_OP0093_ULM_ERROR, global->ops_mstate.ops_ulmrcb.ulm_error.err_code); /* check for error */ #endif } }