Low Level Controller
/* release the data buffer if the
/* frame reception or the frame
/* were erroneous
*/
*/
*/
if (pt->pt_rx_frame >= PT_FR_ERROR)
MMU_free (pt->pt_rx_start);
pt->pt_rx_start
pt->pt_state
pt->pt_rx_frame
pt->pt_rx_cnt
= NULL_PTR;
&= ~PT_REC_ACTIVE;
= 0x00;
= 0;
}
/***************************************************************************/
/*
/*
/*
/*
/*
/*
/*
/*
*/
*/
*/
Function: Check_TREC_status_ICC ()
Parms
:
purpose : called periodically if timer recovery status was detected */
during previous XPR interrupt handing. A */
transmit-acknowledge for I frame is generated if the TREC */
status is left.
*/
*/
/***************************************************************************/
EXPORT void
Check_TREC_status_ICC ()
{
register PEITAB
*pt;
if (!(pt = GetPeitab_BASIC (0)))
return;
outp (pt->pt_r_mask, ~MASK_TIN);
/* allow only TIN interrupts
*/
*/
/* timer recovery status left ?
if (!(inp(pt->pt_r_star2) & STAR2_TREC))
{
if (inp(pt->pt_r_ista) & ISTA_TIN)
{
ResetHDLC_ICC (pt->pt_pei);
TIN_ERROR (pt->pt_pei);
}
else
/* generate a transmit acknowledge */
/* I frame if there was no TIN
/* interrupt
*/
*/
TX_ACKNOWLEDGE (pt->pt_pei, (BYTE) PT_FR_I);
DISABLE_TREC_STATUS_CHECK ();
}
outp (pt->pt_r_mask, 0x00);
}
Semiconductor Group
307