这篇教程C++ CHECK_TSKCTX_UNL函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中CHECK_TSKCTX_UNL函数的典型用法代码示例。如果您正苦于以下问题:C++ CHECK_TSKCTX_UNL函数的具体用法?C++ CHECK_TSKCTX_UNL怎么用?C++ CHECK_TSKCTX_UNL使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了CHECK_TSKCTX_UNL函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: sac_pdqERsac_pdq(ID pdqid, const ACVCT *p_acvct){ PDQCB *p_pdqcb; PDQINIB *p_pdqinib; ER ercd; LOG_SAC_PDQ_ENTER(pdqid, p_acvct); CHECK_TSKCTX_UNL(); CHECK_PDQID(pdqid); CHECK_MACV_READ(p_acvct, ACVCT); 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.acptn3)) { ercd = E_OACV; } else if (PDQID(p_pdqcb) > tmax_spdqid) { p_pdqinib = (PDQINIB *)(p_pdqcb->p_pdqinib); p_pdqinib->acvct = *p_acvct; ercd = E_OK; } else { ercd = E_OBJ; } t_unlock_cpu(); error_exit: LOG_SAC_PDQ_LEAVE(ercd); return(ercd);}
开发者ID:yuyaotsuka,项目名称:etrobo,代码行数:34,
示例2: ref_almERref_alm(ID almid, T_RALM *pk_ralm){ ALMCB *p_almcb; ER ercd; LOG_REF_ALM_ENTER(almid, pk_ralm); CHECK_TSKCTX_UNL(); CHECK_ALMID(almid); p_almcb = get_almcb(almid); t_lock_cpu(); if (p_almcb->almsta) { pk_ralm->almstat = TALM_STA; pk_ralm->lefttim = tmevt_lefttim(&(p_almcb->tmevtb)); } else { pk_ralm->almstat = TALM_STP; } ercd = E_OK; t_unlock_cpu(); error_exit: LOG_REF_ALM_LEAVE(ercd, pk_ralm); return(ercd);}
开发者ID:blarryt,项目名称:toppers-asp,代码行数:26,
示例3: ini_pdqERini_pdq(ID pdqid){ PDQCB *p_pdqcb; ER ercd; LOG_INI_PDQ_ENTER(pdqid); CHECK_TSKCTX_UNL(); CHECK_ID(VALID_PDQID(pdqid)); p_pdqcb = get_pdqcb(pdqid); lock_cpu(); init_wait_queue(&(p_pdqcb->swait_queue)); init_wait_queue(&(p_pdqcb->rwait_queue)); p_pdqcb->count = 0U; p_pdqcb->p_head = NULL; p_pdqcb->unused = 0U; p_pdqcb->p_freelist = NULL; if (p_runtsk != p_schedtsk) { dispatch(); } ercd = E_OK; unlock_cpu(); error_exit: LOG_INI_PDQ_LEAVE(ercd); return(ercd);}
开发者ID:morioka,项目名称:toppers-asp3-for-linux,代码行数:28,
示例4: get_priERget_pri(ID tskid, PRI *p_tskpri){ TCB *p_tcb; ER ercd; LOG_GET_PRI_ENTER(tskid, p_tskpri); CHECK_TSKCTX_UNL(); CHECK_TSKID_SELF(tskid); CHECK_MACV_WRITE(p_tskpri, PRI); p_tcb = get_tcb_self(tskid); CHECK_ACPTN(p_tcb->p_tinib->acvct.acptn4); t_lock_cpu(); if (TSTAT_DORMANT(p_tcb->tstat)) { ercd = E_OBJ; } else { *p_tskpri = EXT_TSKPRI(p_tcb->priority); ercd = E_OK; } t_unlock_cpu(); error_exit: LOG_GET_PRI_LEAVE(ercd, *p_tskpri); return(ercd);}
开发者ID:PizzaFactory,项目名称:hrp2ev3,代码行数:27,
示例5: get_priERget_pri(ID tskid, PRI *p_tskpri){ TCB *p_tcb; ER ercd; LOG_GET_PRI_ENTER(tskid, p_tskpri); CHECK_TSKCTX_UNL(); /*[NGKI1203][NGKI1204]*/ if (tskid == TSK_SELF) { p_tcb = p_runtsk; /*[NGKI1211]*/ } else { CHECK_ID(VALID_TSKID(tskid)); /*[NGKI1205]*/ p_tcb = get_tcb(tskid); } lock_cpu(); if (p_tcb->p_tinib->tskatr == TA_NOEXS) { ercd = E_NOEXS; /*[NGKI1206]*/ } else if (TSTAT_DORMANT(p_tcb->tstat)) { ercd = E_OBJ; /*[NGKI1209]*/ } else { *p_tskpri = EXT_TSKPRI(p_tcb->priority); /*[NGKI1210]*/ ercd = E_OK; } unlock_cpu(); error_exit: LOG_GET_PRI_LEAVE(ercd, p_tskpri); return(ercd);}
开发者ID:takeharukato,项目名称:asp3-aarch64,代码行数:33,
示例6: rot_rdqERrot_rdq(PRI tskpri){ uint_t pri; QUEUE *p_queue; ER ercd; LOG_ROT_RDQ_ENTER(tskpri); CHECK_TSKCTX_UNL(); CHECK_TPRI_SELF(tskpri); t_lock_cpu(); pri = (tskpri == TPRI_SELF) ? p_runtsk->priority : INT_PRIORITY(tskpri); p_queue = &(ready_queue[pri]); if (queue_empty(p_queue)) { ercd = E_OK; } else if ((((TCB *)(p_queue->p_next))->p_tinib->tskatr & TA_RSTR) != 0U) { ercd = E_NOSPT; } else { if (rotate_ready_queue(p_queue)) { dispatch(); } ercd = E_OK; } t_unlock_cpu(); error_exit: LOG_ROT_RDQ_LEAVE(ercd); return(ercd);}
开发者ID:blarryt,项目名称:toppers-asp,代码行数:32,
示例7: ini_dtqERini_dtq(ID dtqid){ DTQCB *p_dtqcb; bool_t dspreq; ER ercd; LOG_INI_DTQ_ENTER(dtqid); CHECK_TSKCTX_UNL(); CHECK_DTQID(dtqid); p_dtqcb = get_dtqcb(dtqid); t_lock_cpu(); dspreq = init_wait_queue(&(p_dtqcb->swait_queue)); if (init_wait_queue(&(p_dtqcb->rwait_queue))) { dspreq = true; }; p_dtqcb->count = 0U; p_dtqcb->head = 0U; p_dtqcb->tail = 0U; if (dspreq) { dispatch(); } ercd = E_OK; t_unlock_cpu(); error_exit: LOG_INI_DTQ_LEAVE(ercd); return(ercd);}
开发者ID:bzchangguopeng,项目名称:toppers-asp,代码行数:30,
示例8: sig_semJSP_L1_CODESYSCALL ERsig_sem(ID semid){ SEMCB *semcb; TCB *tcb; ER ercd; LOG_SIG_SEM_ENTER(semid); CHECK_TSKCTX_UNL(); CHECK_SEMID(semid); semcb = get_semcb(semid); t_lock_cpu(); if (!(queue_empty(&(semcb->wait_queue)))) { tcb = (TCB *) queue_delete_next(&(semcb->wait_queue)); if (wait_complete(tcb)) { dispatch(); } ercd = E_OK; } else if (semcb->semcnt < semcb->seminib->maxsem) { semcb->semcnt += 1; ercd = E_OK; } else { ercd = E_QOVR; } t_unlock_cpu(); exit: LOG_SIG_SEM_LEAVE(ercd); return(ercd);}
开发者ID:ujinosuke,项目名称:ToppersJspForBF70x,代码行数:34,
示例9: rot_rdqERrot_rdq(PRI tskpri){ uint_t pri; ER ercd; bool_t dspreq = false; PCB *my_p_pcb; LOG_ROT_RDQ_ENTER(tskpri); CHECK_TSKCTX_UNL(); CHECK_TPRI_SELF(tskpri); t_lock_cpu(); my_p_pcb = t_acquire_tsk_lock_self_without_runnable_check(); pri = (tskpri == TPRI_SELF) ? my_p_pcb->p_runtsk->priority : INT_PRIORITY(tskpri); dspreq = rotate_ready_queue(pri, my_p_pcb); ercd = E_OK; release_tsk_lock(my_p_pcb); if (dspreq) { dispatch(); } t_unlock_cpu(); error_exit: LOG_ROT_RDQ_LEAVE(ercd); return(ercd);}
开发者ID:inouema,项目名称:toppers,代码行数:27,
示例10: stp_ovrERstp_ovr(ID tskid){ TCB *p_tcb; ER ercd; LOG_STP_OVR_ENTER(tskid); CHECK_TSKCTX_UNL(); CHECK_OBJ(ovrinib.ovrhdr != NULL); CHECK_TSKID_SELF(tskid); p_tcb = get_tcb_self(tskid); t_lock_cpu(); if (p_tcb->p_tinib->tskatr == TA_NOEXS) { ercd = E_NOEXS; } else if (VIOLATE_ACPTN(p_tcb->p_tinib->acvct.acptn2)) { ercd = E_OACV; } else { if (p_tcb->leftotm > 0U) { if (p_tcb == p_runtsk) { (void) target_ovrtimer_stop(); ovrtimer_flag = false; } p_tcb->leftotm = 0U; } ercd = E_OK; } t_unlock_cpu(); error_exit: LOG_STP_OVR_LEAVE(ercd); return(ercd);}
开发者ID:yuyaotsuka,项目名称:etrobo,代码行数:35,
示例11: pol_semJSP_L1_CODESYSCALL ERpol_sem(ID semid){ SEMCB *semcb; ER ercd; LOG_POL_SEM_ENTER(semid); CHECK_TSKCTX_UNL(); CHECK_SEMID(semid); semcb = get_semcb(semid); t_lock_cpu(); if (semcb->semcnt >= 1) { semcb->semcnt -= 1; ercd = E_OK; } else { ercd = E_TMOUT; } t_unlock_cpu(); exit: LOG_POL_SEM_LEAVE(ercd); return(ercd);}
开发者ID:ujinosuke,项目名称:ToppersJspForBF70x,代码行数:26,
示例12: chg_ipmERchg_ipm(PRI intpri){ ER ercd; LOG_CHG_IPM_ENTER(intpri); CHECK_TSKCTX_UNL(); CHECK_INTPRI_CHGIPM(intpri); t_lock_cpu(); t_set_ipm(intpri); if (intpri == TIPM_ENAALL) { ipmflg = true; if (!disdsp) { dspflg = true; if (p_runtsk != p_schedtsk) { dispatch(); } } if (p_runtsk->enatex && p_runtsk->texptn != 0U) { call_texrtn(); } } else { ipmflg = false; dspflg = false; } ercd = E_OK; t_unlock_cpu(); error_exit: LOG_CHG_IPM_LEAVE(ercd); return(ercd);}
开发者ID:duanlv,项目名称:asp-gr_peach_gcc-mbed,代码行数:34,
示例13: del_isrERdel_isr(ID isrid){ ISRCB *p_isrcb; ISRINIB *p_isrinib; ER ercd; LOG_DEL_ISR_ENTER(isrid); CHECK_TSKCTX_UNL(); CHECK_ISRID(isrid); p_isrcb = get_isrcb(isrid); t_lock_cpu(); if (p_isrcb->p_isrinib->isratr == TA_NOEXS) { ercd = E_NOEXS; } else { queue_delete(&(p_isrcb->isr_queue)); p_isrinib = (ISRINIB *)(p_isrcb->p_isrinib); p_isrinib->isratr = TA_NOEXS; queue_insert_prev(&free_isrcb, &(p_isrcb->isr_queue)); ercd = E_OK; } t_unlock_cpu(); error_exit: LOG_DEL_ISR_LEAVE(ercd); return(ercd);}
开发者ID:duanlv,项目名称:asp-gr_peach_gcc-mbed,代码行数:29,
示例14: ref_pdqERref_pdq(ID pdqid, T_RPDQ *pk_rpdq){ PDQCB *p_pdqcb; ER ercd; LOG_REF_PDQ_ENTER(pdqid, pk_rpdq); CHECK_TSKCTX_UNL(); CHECK_PDQID(pdqid); CHECK_MACV_WRITE(pk_rpdq, T_RPDQ); 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.acptn4)) { ercd = E_OACV; } else { pk_rpdq->stskid = wait_tskid(&(p_pdqcb->swait_queue)); pk_rpdq->rtskid = wait_tskid(&(p_pdqcb->rwait_queue)); pk_rpdq->spdqcnt = p_pdqcb->count; ercd = E_OK; } t_unlock_cpu(); error_exit: LOG_REF_PDQ_LEAVE(ercd, pk_rpdq); return(ercd);}
开发者ID:yuyaotsuka,项目名称:etrobo,代码行数:31,
示例15: ena_texJSP_L1_CODESYSCALL ERena_tex(){ ER ercd; LOG_ENA_TEX_ENTER(); CHECK_TSKCTX_UNL(); t_lock_cpu(); if (runtsk->tinib->texrtn == NULL) { ercd = E_OBJ; } else { runtsk->enatex = TRUE; if (runtsk->texptn != 0) { call_texrtn(); } ercd = E_OK; } t_unlock_cpu(); exit: LOG_ENA_TEX_LEAVE(ercd); return(ercd);}
开发者ID:ujinosuke,项目名称:ToppersJspForBF70x,代码行数:26,
示例16: mrot_rdqERmrot_rdq(PRI tskpri, ID prcid){ uint_t pri; ER ercd; bool_t dspreq = false; PCB *p_pcb; LOG_MROT_RDQ_ENTER(tskpri, prcid); CHECK_TSKCTX_UNL(); CHECK_TPRI_SELF(tskpri); CHECK_PRCID(prcid); t_lock_cpu(); p_pcb = t_acquire_tsk_lock_prcid(prcid); pri = (tskpri == TPRI_SELF) ? (get_my_p_pcb())->p_runtsk->priority : INT_PRIORITY(tskpri); if (rotate_ready_queue(pri, p_pcb)) { dspreq = dispatch_request(p_pcb); } ercd = E_OK; release_tsk_lock(p_pcb); if (dspreq) { dispatch(); } t_unlock_cpu(); error_exit: LOG_MROT_RDQ_LEAVE(ercd); return(ercd);}
开发者ID:inouema,项目名称:toppers,代码行数:30,
示例17: ras_texJSP_L1_CODESYSCALL ERras_tex(ID tskid, TEXPTN rasptn){ TCB *tcb; ER ercd; LOG_RAS_TEX_ENTER(tskid, rasptn); CHECK_TSKCTX_UNL(); CHECK_TSKID_SELF(tskid); CHECK_PAR(rasptn != 0); tcb = get_tcb_self(tskid); t_lock_cpu(); if (TSTAT_DORMANT(tcb->tstat) || tcb->tinib->texrtn == NULL) { ercd = E_OBJ; } else { tcb->texptn |= rasptn; if (tcb == runtsk && runtsk->enatex) { call_texrtn(); } ercd = E_OK; } t_unlock_cpu(); exit: LOG_RAS_TEX_LEAVE(ercd); return(ercd);}
开发者ID:ujinosuke,项目名称:ToppersJspForBF70x,代码行数:30,
示例18: ena_dspERena_dsp(void){ ER ercd; bool_t dspreq = false; PCB *my_p_pcb; LOG_ENA_DSP_ENTER(); CHECK_TSKCTX_UNL(); t_lock_cpu(); my_p_pcb = t_acquire_tsk_lock_self_without_runnable_check(); my_p_pcb->disdsp = false; if (t_get_ipm() == TIPM_ENAALL) { my_p_pcb->dspflg = true; if (my_p_pcb->p_runtsk != my_p_pcb->p_schedtsk) { dspreq = true; } } ercd = E_OK; release_tsk_lock(my_p_pcb); if (dspreq) { dispatch(); } t_unlock_cpu(); error_exit: LOG_ENA_DSP_LEAVE(ercd); return(ercd);}
开发者ID:inouema,项目名称:toppers,代码行数:30,
示例19: prcv_dtqERprcv_dtq(ID dtqid, intptr_t *p_data){ DTQCB *p_dtqcb; bool_t reqdsp; ER ercd; LOG_PRCV_DTQ_ENTER(dtqid, p_data); CHECK_TSKCTX_UNL(); CHECK_DTQID(dtqid); p_dtqcb = get_dtqcb(dtqid); t_lock_cpu(); if (receive_data(p_dtqcb, p_data, &reqdsp)) { if (reqdsp) { dispatch(); } ercd = E_OK; } else { ercd = E_TMOUT; } t_unlock_cpu(); error_exit: LOG_PRCV_DTQ_LEAVE(ercd, *p_data); return(ercd);}
开发者ID:bzchangguopeng,项目名称:toppers-asp,代码行数:28,
示例20: set_flgSYSCALL ERset_flg(ID flgid, FLGPTN setptn){ FLGCB *flgcb; TCB *tcb; WINFO_FLG *winfo; ER ercd; LOG_SET_FLG_ENTER(flgid, setptn); CHECK_TSKCTX_UNL(); CHECK_FLGID(flgid); flgcb = get_flgcb(flgid); t_lock_cpu(); flgcb->flgptn |= setptn; if (!(queue_empty(&(flgcb->wait_queue)))) { tcb = (TCB *)(flgcb->wait_queue.next); winfo = (WINFO_FLG *)(tcb->winfo); if (eventflag_cond(flgcb, winfo->waiptn, winfo->wfmode, &(winfo->flgptn))) { queue_delete(&(tcb->task_queue)); if (wait_complete(tcb)) { dispatch(); } } } ercd = E_OK; t_unlock_cpu();exit: LOG_SET_FLG_LEAVE(ercd); return(ercd);}
开发者ID:Han40,项目名称:spamOSEK,代码行数:33,
示例21: act_tskERact_tsk(ID tskid){ TCB *p_tcb; ER ercd; LOG_ACT_TSK_ENTER(tskid); CHECK_TSKCTX_UNL(); CHECK_TSKID_SELF(tskid); p_tcb = get_tcb_self(tskid); CHECK_ACPTN(p_tcb->p_tinib->acvct.acptn1); t_lock_cpu(); if (TSTAT_DORMANT(p_tcb->tstat)) { if (make_active(p_tcb)) { dispatch(); } ercd = E_OK; } else if (!(p_tcb->actque)) { p_tcb->actque = true; ercd = E_OK; } else { ercd = E_QOVR; } t_unlock_cpu(); error_exit: LOG_ACT_TSK_LEAVE(ercd); return(ercd);}
开发者ID:PizzaFactory,项目名称:hrp2ev3,代码行数:32,
示例22: pol_flgSYSCALL ERpol_flg(ID flgid, FLGPTN waiptn, MODE wfmode, FLGPTN *p_flgptn){ FLGCB *flgcb; ER ercd; LOG_POL_FLG_ENTER(flgid, waiptn, wfmode, p_flgptn); CHECK_TSKCTX_UNL(); CHECK_FLGID(flgid); CHECK_PAR(waiptn != 0); CHECK_PAR((wfmode & ~TWF_ORW) == 0); flgcb = get_flgcb(flgid); t_lock_cpu(); if (!(queue_empty(&(flgcb->wait_queue)))) { ercd = E_ILUSE; } else if (eventflag_cond(flgcb, waiptn, wfmode, p_flgptn)) { ercd = E_OK; } else { ercd = E_TMOUT; } t_unlock_cpu();exit: LOG_POL_FLG_LEAVE(ercd, *p_flgptn); return(ercd);}
开发者ID:Han40,项目名称:spamOSEK,代码行数:29,
示例23: can_actER_UINTcan_act(ID tskid){ TCB *p_tcb; ER_UINT ercd; LOG_CAN_ACT_ENTER(tskid); CHECK_TSKCTX_UNL(); /*[NGKI1139][NGKI1140]*/ if (tskid == TSK_SELF) { p_tcb = p_runtsk; /*[NGKI1146]*/ } else { CHECK_ID(VALID_TSKID(tskid)); /*[NGKI1141]*/ p_tcb = get_tcb(tskid); } lock_cpu(); if (p_tcb->p_tinib->tskatr == TA_NOEXS) { ercd = E_NOEXS; /*[NGKI1142]*/ } else { ercd = p_tcb->actque ? 1 : 0; /*[NGKI1144]*/ p_tcb->actque = false; /*[NGKI1144]*/ } unlock_cpu(); error_exit: LOG_CAN_ACT_LEAVE(ercd); return(ercd);}
开发者ID:takeharukato,项目名称:asp3-aarch64,代码行数:30,
示例24: wup_tskERwup_tsk(ID tskid){ TCB *p_tcb; ER ercd; LOG_WUP_TSK_ENTER(tskid); CHECK_TSKCTX_UNL(); CHECK_TSKID_SELF(tskid); p_tcb = get_tcb_self(tskid); t_lock_cpu(); if (TSTAT_DORMANT(p_tcb->tstat)) { ercd = E_OBJ; } else if (TSTAT_WAIT_SLP(p_tcb->tstat)) { if (wait_complete(p_tcb)) { dispatch(); } ercd = E_OK; } else if (!(p_tcb->wupque)) { p_tcb->wupque = true; ercd = E_OK; } else { ercd = E_QOVR; } t_unlock_cpu(); error_exit: LOG_WUP_TSK_LEAVE(ercd); return(ercd);}
开发者ID:zaurus04,项目名称:cortexm3,代码行数:34,
示例25: sta_almERsta_alm(ID almid, RELTIM almtim){ ALMCB *p_almcb; ER ercd; LOG_STA_ALM_ENTER(almid, almtim); CHECK_TSKCTX_UNL(); CHECK_ALMID(almid); CHECK_PAR(almtim <= TMAX_RELTIM); p_almcb = get_almcb(almid); t_lock_cpu(); if (p_almcb->almsta) { tmevtb_dequeue(&(p_almcb->tmevtb)); } else { p_almcb->almsta = true; } tmevtb_enqueue(&(p_almcb->tmevtb), almtim, (CBACK) call_almhdr, (void *) p_almcb); ercd = E_OK; t_unlock_cpu(); error_exit: LOG_STA_ALM_LEAVE(ercd); return(ercd);}
开发者ID:blarryt,项目名称:toppers-asp,代码行数:28,
示例26: can_wupER_UINTcan_wup(ID tskid){ TCB *p_tcb; ER_UINT ercd; LOG_CAN_WUP_ENTER(tskid); CHECK_TSKCTX_UNL(); CHECK_TSKID_SELF(tskid); p_tcb = get_tcb_self(tskid); t_lock_cpu(); if (TSTAT_DORMANT(p_tcb->tstat)) { ercd = E_OBJ; } else { ercd = p_tcb->wupque ? 1 : 0; p_tcb->wupque = false; } t_unlock_cpu(); error_exit: LOG_CAN_WUP_LEAVE(ercd); return(ercd);}
开发者ID:zaurus04,项目名称:cortexm3,代码行数:25,
示例27: prcv_pdqERprcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri){ PDQCB *p_pdqcb; ER ercd; LOG_PRCV_PDQ_ENTER(pdqid, p_data, p_datapri); CHECK_TSKCTX_UNL(); CHECK_ID(VALID_PDQID(pdqid)); p_pdqcb = get_pdqcb(pdqid); lock_cpu(); if (receive_pridata(p_pdqcb, p_data, p_datapri)) { if (p_runtsk != p_schedtsk) { dispatch(); } ercd = E_OK; } else { ercd = E_TMOUT; } unlock_cpu(); error_exit: LOG_PRCV_PDQ_LEAVE(ercd, p_data, p_datapri); return(ercd);}
开发者ID:morioka,项目名称:toppers-asp3-for-linux,代码行数:27,
示例28: rel_waiERrel_wai(ID tskid){ TCB *p_tcb; ER ercd; LOG_REL_WAI_ENTER(tskid); CHECK_TSKCTX_UNL(); CHECK_TSKID(tskid); p_tcb = get_tcb(tskid); t_lock_cpu(); if (!TSTAT_WAITING(p_tcb->tstat)) { ercd = E_OBJ; } else { if (wait_release(p_tcb)) { dispatch(); } ercd = E_OK; } t_unlock_cpu(); error_exit: LOG_REL_WAI_LEAVE(ercd); return(ercd);}
开发者ID:zaurus04,项目名称:cortexm3,代码行数:27,
示例29: can_wupER_UINTcan_wup(ID tskid){ TCB *p_tcb; ER_UINT ercd; LOG_CAN_WUP_ENTER(tskid); CHECK_TSKCTX_UNL(); if (tskid == TSK_SELF) { p_tcb = p_runtsk; } else { CHECK_ID(VALID_TSKID(tskid)); p_tcb = get_tcb(tskid); } CHECK_NOSPT((p_tcb->p_tinib->tskatr & TA_RSTR) == 0U); /*[NGKI1279]*/ lock_cpu(); if (TSTAT_DORMANT(p_tcb->tstat)) { ercd = E_OBJ; } else { ercd = p_tcb->wupque ? 1 : 0; p_tcb->wupque = false; } unlock_cpu(); error_exit: LOG_CAN_WUP_LEAVE(ercd); return(ercd);}
开发者ID:morioka,项目名称:toppers-asp3-for-linux,代码行数:31,
示例30: sta_almERsta_alm(ID almid , RELTIM almtim){ ER ercd; uint_t index = INDEX_ALM(almid); LOG_STA_ALM_ENTER(almid, almtim); CHECK_TSKCTX_UNL(); CHECK_ALMID(almid); t_lock_cpu(); if((almcb_almact & ALMACT_BIT(index)) != 0U) { time_event_dequeue(ALM_EVTID(almid)); } else { almcb_almact |= ALMACT_BIT(index); } time_event_enqueue(ALM_EVTID(almid) , current_time + (EVTTIM)almtim , (CBACK)call_almhdr , index); ercd = E_OK; t_unlock_cpu(); error_exit: LOG_STA_ALM_LEAVE(ercd); return ercd;}
开发者ID:inouema,项目名称:toppers,代码行数:29,
注:本文中的CHECK_TSKCTX_UNL函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ CHECK_TYPEDEF函数代码示例 C++ CHECK_STRING函数代码示例 |