这篇教程C++ CHECK_DISPATCH函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中CHECK_DISPATCH函数的典型用法代码示例。如果您正苦于以下问题:C++ CHECK_DISPATCH函数的具体用法?C++ CHECK_DISPATCH怎么用?C++ CHECK_DISPATCH使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了CHECK_DISPATCH函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: slp_tskERslp_tsk(void){ WINFO winfo; ER ercd; LOG_SLP_TSK_ENTER(); CHECK_DISPATCH(); t_lock_cpu(); if (p_runtsk->wupque) { p_runtsk->wupque = false; ercd = E_OK; } else { p_runtsk->tstat = (TS_WAITING | TS_WAIT_SLP); make_wait(&winfo); LOG_TSKSTAT(p_runtsk); dispatch(); ercd = winfo.wercd; } t_unlock_cpu(); error_exit: LOG_SLP_TSK_LEAVE(ercd); return(ercd);}
开发者ID:zaurus04,项目名称:cortexm3,代码行数:27,
示例2: twai_semJSP_L1_CODESYSCALL ERtwai_sem(ID semid, TMO tmout){ SEMCB *semcb; WINFO_WOBJ winfo; TMEVTB tmevtb; ER ercd; LOG_TWAI_SEM_ENTER(semid, tmout); CHECK_DISPATCH(); CHECK_SEMID(semid); CHECK_TMOUT(tmout); semcb = get_semcb(semid); t_lock_cpu(); if (semcb->semcnt >= 1) { semcb->semcnt -= 1; ercd = E_OK; } else if (tmout == TMO_POL) { ercd = E_TMOUT; } else { wobj_make_wait_tmout((WOBJCB *) semcb, &winfo, &tmevtb, tmout); dispatch(); ercd = winfo.winfo.wercd; } t_unlock_cpu(); exit: LOG_TWAI_SEM_LEAVE(ercd); return(ercd);}
开发者ID:ujinosuke,项目名称:ToppersJspForBF70x,代码行数:34,
示例3: tslp_tskERtslp_tsk(TMO tmout){ WINFO winfo; TMEVTB tmevtb; ER ercd; LOG_TSLP_TSK_ENTER(tmout); CHECK_DISPATCH(); CHECK_TMOUT(tmout); t_lock_cpu(); if (p_runtsk->wupque) { p_runtsk->wupque = false; ercd = E_OK; } else if (tmout == TMO_POL) { ercd = E_TMOUT; } else { p_runtsk->tstat = (TS_WAITING | TS_WAIT_SLP); make_wait_tmout(&winfo, &tmevtb, tmout); LOG_TSKSTAT(p_runtsk); dispatch(); ercd = winfo.wercd; } t_unlock_cpu(); error_exit: LOG_TSLP_TSK_LEAVE(ercd); return(ercd);}
开发者ID:zaurus04,项目名称:cortexm3,代码行数:32,
示例4: dly_tskERdly_tsk(RELTIM dlytim){ WINFO winfo; TMEVTB tmevtb; ER ercd; LOG_DLY_TSK_ENTER(dlytim); CHECK_DISPATCH(); CHECK_PAR(dlytim <= TMAX_RELTIM); t_lock_cpu(); p_runtsk->tstat = (TS_WAITING | TS_WAIT_DLY); (void) make_non_runnable(p_runtsk); p_runtsk->p_winfo = &winfo; winfo.p_tmevtb = &tmevtb; tmevtb_enqueue(&tmevtb, dlytim, (CBACK) wait_tmout_ok, (void *) p_runtsk); LOG_TSKSTAT(p_runtsk); dispatch(); ercd = winfo.wercd; t_unlock_cpu(); error_exit: LOG_DLY_TSK_LEAVE(ercd); return(ercd);}
开发者ID:zaurus04,项目名称:cortexm3,代码行数:26,
示例5: i_vtrcv_tmbSYSCALL ERi_vtrcv_tmb(T_MSG **ppk_msg, TMO tmout) { ER ercd = E_OK; CHECK_TMOUT(tmout); CHECK_DISPATCH(); BEGIN_CRITICAL_SECTION; if ( ctxtsk->tmq_head ) { *ppk_msg = ctxtsk->tmq_head; ctxtsk->tmq_head = nextmsg(*ppk_msg); } else { ercd = E_TMOUT; if ( tmout != TMO_POL ) { ctxtsk->wspec = &wspec_tmb_tfifo; ctxtsk->wgcb = (GCB *) 0; ctxtsk->wercd = &ercd; ctxtsk->winfo.tmb.ppk_msg = ppk_msg; make_wait(tmout); queue_initialize(&(ctxtsk->tskque)); } } END_CRITICAL_SECTION; return(ercd); }
开发者ID:tahamsaglam,项目名称:w0807,代码行数:30,
示例6: wai_semJSP_L1_CODESYSCALL ERwai_sem(ID semid){ SEMCB *semcb; WINFO_WOBJ winfo; ER ercd; LOG_WAI_SEM_ENTER(semid); CHECK_DISPATCH(); CHECK_SEMID(semid); semcb = get_semcb(semid); t_lock_cpu(); if (semcb->semcnt >= 1) { semcb->semcnt -= 1; ercd = E_OK; } else { wobj_make_wait((WOBJCB *) semcb, &winfo); dispatch(); ercd = winfo.winfo.wercd; } t_unlock_cpu(); exit: LOG_WAI_SEM_LEAVE(ercd); return(ercd);}
开发者ID:ujinosuke,项目名称:ToppersJspForBF70x,代码行数:29,
示例7: rcv_mbxSYSCALL ERrcv_mbx(ID mbxid, T_MSG **ppk_msg){ MBXCB *mbxcb; WINFO_MBX winfo; ER ercd; LOG_RCV_MBX_ENTER(mbxid, ppk_msg); CHECK_DISPATCH(); CHECK_MBXID(mbxid); mbxcb = get_mbxcb(mbxid); t_lock_cpu(); if (mbxcb->head != NULL) { *ppk_msg = mbxcb->head; mbxcb->head = (*ppk_msg)->next; ercd = E_OK; } else { wobj_make_wait((WOBJCB *) mbxcb, (WINFO_WOBJ *) &winfo); dispatch(); ercd = winfo.winfo.wercd; if (ercd == E_OK) { *ppk_msg = winfo.pk_msg; } } t_unlock_cpu(); exit: LOG_RCV_MBX_LEAVE(ercd, *ppk_msg); return(ercd);}
开发者ID:Ashatta,项目名称:tools,代码行数:32,
示例8: _tk_rcv_mbf_uSYSCALL INT _tk_rcv_mbf_u( ID mbfid, void *msg, TMO_U tmout ){ MBFCB *mbfcb; TCB *tcb; INT rcvsz; ER ercd = E_OK; CHECK_MBFID(mbfid); CHECK_TMOUT(tmout); CHECK_DISPATCH(); mbfcb = get_mbfcb(mbfid); BEGIN_CRITICAL_SECTION; if (mbfcb->mbfid == 0) { ercd = E_NOEXS; goto error_exit; } /* Check receive wait disable */ if ( is_diswai((GCB*)mbfcb, ctxtsk, TTW_RMBF) ) { ercd = E_DISWAI; goto error_exit; } if ( !mbf_empty(mbfcb) ) { /* Read from message buffer */ rcvsz = mbf_to_msg(mbfcb, msg); /* Accept message from sending task(s) */ mbf_wakeup(mbfcb); } else if ( !isQueEmpty(&mbfcb->send_queue) ) { /* Receive directly from send wait task */ tcb = (TCB*)mbfcb->send_queue.next; rcvsz = tcb->winfo.smbf.msgsz; memcpy(msg, tcb->winfo.smbf.msg, (UINT)rcvsz); wait_release_ok(tcb); mbf_wakeup(mbfcb); } else { ercd = E_TMOUT; if ( tmout != TMO_POL ) { /* Ready for receive wait */ ctxtsk->wspec = &wspec_rmbf; ctxtsk->wid = mbfid; ctxtsk->wercd = &ercd; ctxtsk->winfo.rmbf.msg = msg; ctxtsk->winfo.rmbf.p_msgsz = &rcvsz; make_wait(tmout, mbfcb->mbfatr); QueInsert(&ctxtsk->tskque, &mbfcb->recv_queue); } } error_exit: END_CRITICAL_SECTION; return ( ercd < E_OK )? ercd: rcvsz;}
开发者ID:Ninals-GitHub,项目名称:TRON,代码行数:58,
示例9: trcv_pdqERtrcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri, TMO tmout){ PDQCB *p_pdqcb; WINFO_PDQ winfo_pdq; TMEVTB tmevtb; bool_t dspreq; ER ercd; LOG_TRCV_PDQ_ENTER(pdqid, p_data, p_datapri, tmout); CHECK_DISPATCH(); CHECK_PDQID(pdqid); CHECK_MACV_WRITE(p_data, intptr_t); CHECK_MACV_WRITE(p_datapri, PRI); CHECK_TMOUT(tmout); p_pdqcb = get_pdqcb(pdqid); t_lock_cpu(); if (p_pdqcb->p_pdqinib->pdqatr == TA_NOEXS) { ercd = E_NOEXS; } else if (VIOLATE_ACPTN(p_pdqcb->p_pdqinib->acvct.acptn2)) { ercd = E_OACV; } else if (receive_pridata(p_pdqcb, p_data, p_datapri, &dspreq)) { if (dspreq) { dispatch(); } ercd = E_OK; } else if (tmout == TMO_POL) { ercd = E_TMOUT; } else if (p_runtsk->waifbd) { ercd = E_RLWAI; } else { p_runtsk->tstat = (TS_WAITING | TS_WAIT_RPDQ); make_wait_tmout(&(winfo_pdq.winfo), &tmevtb, tmout); queue_insert_prev(&(p_pdqcb->rwait_queue), &(p_runtsk->task_queue)); winfo_pdq.p_pdqcb = p_pdqcb; LOG_TSKSTAT(p_runtsk); dispatch(); ercd = winfo_pdq.winfo.wercd; if (ercd == E_OK) { *p_data = winfo_pdq.data; *p_datapri = winfo_pdq.datapri; } } t_unlock_cpu(); error_exit: LOG_TRCV_PDQ_LEAVE(ercd, *p_data, *p_datapri); return(ercd);}
开发者ID:yuyaotsuka,项目名称:etrobo,代码行数:56,
示例10: loc_mtxERloc_mtx(ID mtxid){ MTXCB *p_mtxcb; WINFO_MTX winfo_mtx; ER ercd; LOG_LOC_MTX_ENTER(mtxid); CHECK_DISPATCH(); CHECK_ID(VALID_MTXID(mtxid)); p_mtxcb = get_mtxcb(mtxid); lock_cpu_dsp(); if (p_mtxcb->p_mtxinib->mtxatr == TA_NOEXS) { ercd = E_NOEXS; } else if (VIOLATE_ACPTN(p_mtxcb->p_mtxinib->acvct.acptn1)) { ercd = E_OACV; } else if (MTX_CEILING(p_mtxcb) && p_mtxcb->p_mtxinib->ceilpri < p_runtsk->p_dominib->minpriority && VIOLATE_ACPTN(p_runtsk->p_dominib->acvct.acptn2)) { ercd = E_OACV; /*[NGKI5124]*/ } else if (p_runtsk->raster) { ercd = E_RASTER; } else if (MTX_CEILING(p_mtxcb) && p_runtsk->bpriority < p_mtxcb->p_mtxinib->ceilpri) { ercd = E_ILUSE; } else if (p_mtxcb->p_loctsk == NULL) { mutex_acquire(p_runtsk, p_mtxcb); /* * C++ CHECK_DISPLAY函数代码示例 C++ CHECK_CONTEXT函数代码示例
|