Пример #1
0
//
// 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);
}
Пример #2
0
//
// 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);
}
Пример #3
0
//
// 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);
}
Пример #4
0
//
// 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);
}
Пример #5
0
//
// 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);
}
Пример #6
0
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));
}