// // Purpose: A near close to XSIGNALTIMEOUT, but callback is called on to // SB_Export int timer_start_cb(int pv_toval, short pv_parm1, long pv_parm2, short *pp_tleid, Timer_Cb_Type pv_callback) { const char *WHERE = "timer_start_cb"; void *lp_cb; short lv_fserr; SB_API_CTR (lv_zctr, TIMER_START_CB); if (gv_ms_trace_params) { lp_cb = SB_CB_TO_PTR(pv_callback); trace_where_printf(WHERE, "ENTER toval=%d, parm1=%d(0x%x), parm2=%ld(0x%lx), tleid=%p, cb=%p\n", pv_toval, pv_parm1, pv_parm1, pv_parm2, pv_parm2, pfp(pp_tleid), lp_cb); } lv_fserr = sb_timer_start_com(WHERE, false, TIMER_TLE_KIND_CB, pv_toval, pv_parm1, pv_parm2, pp_tleid, 0, NULL, pv_callback); return ms_err_rtn(lv_fserr); }
// // Purpose: register event // SB_Export int proc_event_register(short pv_event) { const char *WHERE = "proc_event_register"; short lv_fserr; SB_API_CTR (lv_zctr, PROC_EVENT_REGISTER); if (gv_ms_trace_params) trace_where_printf(WHERE, "ENTER event=0x%x\n", pv_event); switch (pv_event) { case LREQ: lv_fserr = XZFIL_ERR_OK; break; case LDONE: lv_fserr = XZFIL_ERR_OK; break; default: lv_fserr = XZFIL_ERR_INVALOP; } if (lv_fserr == XZFIL_ERR_OK) if (!gv_ms_event_mgr.get_mgr(NULL)->register_event(pv_event)) lv_fserr = XZFIL_ERR_TOOMANY; if (gv_ms_trace_params) trace_where_printf(WHERE, "EXIT ret=%d\n", lv_fserr); return ms_err_rtn(lv_fserr); }
// // Purpose: A near close to XCANCELTIMEOUT // SB_Export int timer_cancel(short pv_tag) { const char *WHERE = "timer_cancel"; short lv_fserr; SB_API_CTR (lv_zctr, TIMER_CANCEL); lv_fserr = sb_timer_cancel_com(WHERE, pv_tag, false); return ms_err_rtn(lv_fserr); }
// // Purpose: register tid // SB_Export int timer_register() { const char *WHERE = "timer_register"; short lv_fserr; SB_API_CTR (lv_zctr, TIMER_REGISTER); lv_fserr = XZFIL_ERR_OK; if (gv_ms_trace_params) trace_where_printf(WHERE, "ENTER\n"); sb_timer_comp_q_get(); gv_ms_event_mgr.get_mgr(NULL); if (gv_ms_trace_params) trace_where_printf(WHERE, "EXIT ret=%d\n", lv_fserr); return ms_err_rtn(lv_fserr); }
// // Purpose: trace msg and return an ms error // short ms_err_rtn_msg(const char *pp_where, const char *pp_msg, short pv_fserr) { if (pv_fserr != XZFIL_ERR_OK) { SB_UTRACE_API_ADD2(SB_UTRACE_API_OP_MS_EXIT, pv_fserr); if (gv_ms_trace_errors) trace_where_printf(pp_where, "setting ms (%s) ret=%d\n", pp_msg, pv_fserr); if (gv_ms_assert_error) SB_util_assert_ieq(pv_fserr, XZFIL_ERR_OK); // sw fault } if (gv_ms_trace_params) trace_where_printf(pp_where, "%s\n", pp_msg); return ms_err_rtn(pv_fserr); }
SB_Export int proc_set_process_completion() { const char *WHERE = "proc_set_process_completion"; int lv_fserr; SB_API_CTR (lv_zctr, PROC_SET_PROCESS_COMPLETION); if (gv_ms_trace_params) trace_where_printf(WHERE, "ENTER\n"); if (!gv_ms_calls_ok) return ms_err_rtn_msg(WHERE, "msg_init() not called or shutdown", XZFIL_ERR_INVALIDSTATE); gv_ms_process_comp = true; #ifndef USE_EVENT_REG gv_ms_event_mgr.set_ret_gmgr(true); #endif lv_fserr = XZFIL_ERR_OK; if (gv_ms_trace_params) trace_where_printf(WHERE, "EXIT ret=%d\n", lv_fserr); return ms_err_rtn(static_cast<short>(lv_fserr)); }