ER
clr_flg(ID flgid, FLGPTN clrptn)
{
	FLGCB	*p_flgcb;
	ER		ercd;

	LOG_CLR_FLG_ENTER(flgid, clrptn);
	CHECK_TSKCTX_UNL();
	CHECK_FLGID(flgid);
	p_flgcb = get_flgcb(flgid);

	t_lock_cpu();
	if (p_flgcb->p_flginib->flgatr == TA_NOEXS) {
		ercd = E_NOEXS;
	}
	else {
		p_flgcb->flgptn &= clrptn; 
		ercd = E_OK;
	}
	t_unlock_cpu();

  error_exit:
	LOG_CLR_FLG_LEAVE(ercd);
	return(ercd);
}
Пример #2
0
SYSCALL ER
clr_flg(ID flgid, FLGPTN clrptn)
{
    FLGCB	*flgcb;
    ER	ercd;

    LOG_CLR_FLG_ENTER(flgid, clrptn);
    CHECK_TSKCTX_UNL();
    CHECK_FLGID(flgid);
    flgcb = get_flgcb(flgid);

    t_lock_cpu();
    flgcb->flgptn &= clrptn;
    ercd = E_OK;
    t_unlock_cpu();

exit:
    LOG_CLR_FLG_LEAVE(ercd);
    return(ercd);
}
Пример #3
0
ER
clr_flg(ID flgid, FLGPTN clrptn)
{
	FLGCB	*p_flgcb;
	ER		ercd;

	LOG_CLR_FLG_ENTER(flgid, clrptn);
	CHECK_TSKCTX_UNL();
	CHECK_FLGID(flgid);
	p_flgcb = get_flgcb(flgid);

	t_lock_cpu();
	t_acquire_obj_lock(&GET_OBJLOCK(p_flgcb));
	p_flgcb->flgptn &= clrptn; 
	ercd = E_OK;
	release_obj_lock(&GET_OBJLOCK(p_flgcb));
	t_unlock_cpu();

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