FreeBSD/sys/dev/rp/rp.c
/***************************************************************************
Function: sDisInterrupts
Purpose:  Disable one or more interrupts for a channel
Call:	  sDisInterrupts(ChP,Flags)
	  CHANNEL_T *ChP; Ptr to channel structure
	  Word_t Flags: Interrupt flags, can be any combination
	     of the following flags:
		TXINT_EN:   Interrupt on Tx FIFO empty
		RXINT_EN:   Interrupt on Rx FIFO at trigger level (see
			    sSetRxTrigger())
		SRCINT_EN:  Interrupt on SRC (Special Rx Condition)
		MCINT_EN:   Interrupt on modem input change
		CHANINT_EN: Disable channel interrupt signal to the
			    AIOP's Interrupt Channel Register.
Return:   void
Comments: If an interrupt flag is set in Flags, that interrupt will be
	  disabled.  If an interrupt flag is not set in Flags, that
	  interrupt will not be changed.  Interrupts can be enabled with
	  function sEnInterrupts().

	  This function clears the appropriate bit for the channel in the AIOP's
	  Interrupt Mask Register if the CHANINT_EN flag is set.  This blocks
	  this channel's bit from being set in the AIOP's Interrupt Channel
	  Register.
*/


This function clears the appropriate bit for the channel in the AIOP's
Interrupt Mask Register if the CHANINT_EN flag is set.  This blocks
this channel's bit from being set in the AIOP's Interrupt Channel
Register.
This function clears the appropriate bit for the channel in the AIOP ' s Interrupt Mask Register if the CHANINT_EN flag is set . This blocks this channel ' s bit from being set in the AIOP ' s Interrupt Channel Register .
void sDisInterrupts(CHANNEL_T *ChP,Word_t Flags)
{
   Byte_t Mask; 		
   ChP->RxControl[2] &=
	 ~((Byte_t)Flags & (RXINT_EN | SRCINT_EN | MCINT_EN));
   rp_writech4(ChP,_INDX_ADDR,le32dec(ChP->RxControl));
   ChP->TxControl[2] &= ~((Byte_t)Flags & TXINT_EN);
   rp_writech4(ChP,_INDX_ADDR,le32dec(ChP->TxControl));
   if(Flags & CHANINT_EN)
   {
      Mask = rp_readch1(ChP,_INT_MASK) & rp_sBitMapClrTbl[ChP->ChanNum];
      rp_writech1(ChP,_INT_MASK,Mask);
   }
}
void sDisInterrupts ( CHANNEL_T * ChP , Word_t Flags ) { Byte_t Mask ; ChP -> RxControl [ 2 ] &= ~ ( ( Byte_t ) Flags & ( RXINT_EN | SRCINT_EN | MCINT_EN ) ) ; rp_writech4 ( ChP , _INDX_ADDR , le32dec ( ChP -> RxControl ) ) ; ChP -> TxControl [ 2 ] &= ~ ( ( Byte_t ) Flags & TXINT_EN ) ; rp_writech4 ( ChP , _INDX_ADDR , le32dec ( ChP -> TxControl ) ) ; if ( Flags & CHANINT_EN ) { Mask = rp_readch1 ( ChP , _INT_MASK ) & rp_sBitMapClrTbl [ ChP -> ChanNum ] ; rp_writech1 ( ChP , _INT_MASK , Mask ) ; } }
Function: sDisInterrupts
Purpose:  Disable one or more interrupts for a channel
Call:     sDisInterrupts(ChP,Flags)
CHANNEL_T *ChP; Ptr to channel structure
Word_t Flags: Interrupt flags, can be any combination
of the following flags:
TXINT_EN:   Interrupt on Tx FIFO empty
RXINT_EN:   Interrupt on Rx FIFO at trigger level (see
sSetRxTrigger())
SRCINT_EN:  Interrupt on SRC (Special Rx Condition)
MCINT_EN:   Interrupt on modem input change
CHANINT_EN: Disable channel interrupt signal to the
AIOP's Interrupt Channel Register.
Function : sDisInterrupts Purpose : Disable one or more interrupts for a channel Call : sDisInterrupts ( ChP Flags ) CHANNEL_T * ChP ; Ptr to channel structure Word_t Flags : Interrupt flags can be any combination of the following flags : TXINT_EN : Interrupt on Tx FIFO empty RXINT_EN : Interrupt on Rx FIFO at trigger level ( see sSetRxTrigger () ) SRCINT_EN : Interrupt on SRC ( Special Rx Condition ) MCINT_EN : Interrupt on modem input change CHANINT_EN : Disable channel interrupt signal to the AIOP ' s Interrupt Channel Register .
/* Interrupt Mask Register */