예제 #1
0
ER
unl_cpu(void)
{
	ER		ercd;

	LOG_UNL_CPU_ENTER();
	CHECK_TSKCTX();

	if (t_sense_lock()) {
		t_unlock_cpu();
	}
	ercd = E_OK;

  error_exit:
	LOG_UNL_CPU_LEAVE(ercd);
	return(ercd);
}
예제 #2
0
ER
unl_cpu(void)
{
	ER		ercd;

	LOG_UNL_CPU_ENTER();
	CHECK_TSKCTX();

	if (t_sense_lock() && ((get_my_p_pcb())->locspnid == 0)) {
		t_unlock_cpu();
	}
	ercd = E_OK;

  error_exit:
	LOG_UNL_CPU_LEAVE(ercd);
	return(ercd);
}
예제 #3
0
ER
unl_cpu(void)
{
	ER		ercd;

	LOG_UNL_CPU_ENTER();
	CHECK_TSKCTX();
	CHECK_ACPTN(sysstat_acvct.acptn2);

	if (t_sense_lock()) {
		if (p_runtsk->enatex && p_runtsk->texptn != 0U && ipmflg
					&& rundom == TACP_KERNEL && p_runtsk->svclevel == 0U) {
			call_texrtn_stask();
		}
		t_unlock_cpu();
	}
	ercd = E_OK;

  error_exit:
	LOG_UNL_CPU_LEAVE(ercd);
	return(ercd);
}