Example #1
0
ER
ref_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);
    p_pdqcb = get_pdqcb(pdqid);

    t_lock_cpu();
    if (p_pdqcb->p_pdqinib->pdqatr == TA_NOEXS) {
        ercd = E_NOEXS;
    }
    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);
}
ER
ref_pdq(ID pdqid, T_RPDQ *pk_rpdq)
{
	PDQCB	*p_pdqcb;
	ER		ercd;
    
	LOG_REF_PDQ_ENTER(pdqid, pk_rpdq);
	CHECK_TSKCTX_UNL();
	CHECK_ID(VALID_PDQID(pdqid));
	p_pdqcb = get_pdqcb(pdqid);

	lock_cpu();
	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;
	unlock_cpu();

  error_exit:
	LOG_REF_PDQ_LEAVE(ercd, pk_rpdq);
	return(ercd);
}