/** ed_dis_inter -- 割込みを禁止する。 * if_std0001.c からのみ呼び出し。 * ed_ena_inter() は tinet_sys_config.h で定義 * #define ed_ena_inter(ipm) chg_ipm(ipm) ******************************************************* */ IPM ed_dis_inter( void ) { IPM ipm; syscall(get_ipm(&ipm)); syscall(chg_ipm(if_ed_handler_intmask)); return ipm; }
void task1(intptr_t exinf) { ER_UINT ercd; T_RTSK rtsk; T_RMTX rmtx; PRI intpri; test_start(__FILE__); check_point(1); ercd = sta_alm(ALM1, TEST_TIME_CP); check_ercd(ercd, E_OK); ercd = slp_tsk(); check_ercd(ercd, E_OK); check_point(3); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); check_point(5); ercd = ref_tsk(TASK2, &rtsk); check_ercd(ercd, E_OK); check_assert(rtsk.tskstat == TTS_DMT); ercd = ref_mtx(MTX1, &rmtx); check_ercd(ercd, E_OK); check_assert(rmtx.htskid == TSK_NONE); check_assert(rmtx.wtskid == TSK_NONE); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); check_point(16); ercd = get_ipm(&intpri); check_ercd(ercd, E_OK); check_assert(intpri == TIPM_ENAALL); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); check_point(23); check_assert(sns_dsp() == false); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); check_finish(28); check_point(0); }
void task3(intptr_t exinf) { ER_UINT ercd; T_RTSK rtsk; PRI intpri; switch (++task3_count) { case 1: check_point(7); ercd = loc_mtx(MTX1); check_ercd(ercd, E_OK); check_point(9); ercd = unl_mtx(MTX1); check_ercd(ercd, E_OK); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); check_point(10); ercd = ext_tsk(); check_ercd(ercd, E_OK); check_point(0); case 2: check_point(14); ercd = ref_tsk(TASK2, &rtsk); check_ercd(ercd, E_OK); check_assert(rtsk.tskstat == TTS_RDY); check_assert(rtsk.actcnt == 0U); ercd = loc_cpu(); check_ercd(ercd, E_OK); ercd = ext_tsk(); check_ercd(ercd, E_OK); check_point(0); case 3: check_point(19); ercd = get_ipm(&intpri); check_ercd(ercd, E_OK); check_assert(intpri == TIPM_ENAALL); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); check_point(20); ercd = ext_tsk(); check_ercd(ercd, E_OK); check_point(0); case 4: check_point(26); check_assert(sns_dsp() == false); ercd = ext_tsk(); check_ercd(ercd, E_OK); check_point(0); default: check_point(0); } check_point(0); }