コード例 #1
0
ファイル: interrupt.c プロジェクト: huchunxu/asp
ER
get_ipm(PRI *p_intpri)
{
	ER		ercd;

	LOG_GET_IPM_ENTER(p_intpri);
	CHECK_TSKCTX_UNL();

	t_lock_cpu();
	*p_intpri = t_get_ipm();
	ercd = E_OK;
	t_unlock_cpu();

  error_exit:
	LOG_GET_IPM_LEAVE(ercd, *p_intpri);
	return(ercd);
}
コード例 #2
0
/*
 *  割込みマスクの参照
 */
SYSCALL ER
get_ipm(IPM *p_ipm)
{
	ER	ercd;

	LOG_GET_IPM_ENTER(p_ipm);		/*  ICU依存  */
	CHECK_TSKCTX_UNL();

	t_lock_cpu();
	GET_IPM(p_ipm);				/*  ICU依存  */
	ercd = E_OK;
	t_unlock_cpu();

    exit:
	LOG_GET_IPM_LEAVE(ercd, *p_ipm);	/*  ICU依存  */
	return(ercd);
}
コード例 #3
0
ファイル: interrupt.c プロジェクト: PizzaFactory/hrp2ev3
ER
get_ipm(PRI *p_intpri)
{
	ER		ercd;

	LOG_GET_IPM_ENTER(p_intpri);
	CHECK_TSKCTX_UNL();
	CHECK_MACV_WRITE(p_intpri, PRI);
	CHECK_ACPTN(sysstat_acvct.acptn4);

	t_lock_cpu();
	*p_intpri = t_get_ipm();
	ercd = E_OK;
	t_unlock_cpu();

  error_exit:
	LOG_GET_IPM_LEAVE(ercd, *p_intpri);
	return(ercd);
}
コード例 #4
0
ファイル: interrupt.c プロジェクト: RazeLiberty/FINE-PLAY-BOX
ER
get_ipm(PRI *p_intpri)
{
	bool_t	locked;
	ER		ercd;

	LOG_GET_IPM_ENTER(p_intpri);
	CHECK_TSKCTX();

	locked = t_sense_lock();
	if (!locked) {
		t_lock_cpu();
	}
	*p_intpri = t_get_ipm();
	ercd = E_OK;
	if (!locked) {
		t_unlock_cpu();
	}

  error_exit:
	LOG_GET_IPM_LEAVE(ercd, *p_intpri);
	return(ercd);
}