示例#1
0
文件: sis3803.c 项目: cjpl/midas
/************ INLINE function for General command ***********/
INLINE void sis3803_int_detach(const DWORD base_adr, DWORD base_vect, int level)
/**************************************************************\
 Purpose: Unbook an ISR for a bitwise set of interrupt input (0xff).
          The interrupt vector is then the VECTOR_BASE+intnum
 Input:
  DWORD * base_addr       : base address of the sis3803
  DWORD base_vect        : base vector of the module
  int   level            : IRQ level (1..7)
 Output:
    none
 Function value:
    none
\**************************************************************/
{

   /* disable all IRQ sources */
/*  Should be done but not in detach 
  sis3803_int_source(base_adr   , DISABLE_IRQ_DI_BS0
		    | DISABLE_IRQ_DI_BS1
		    | DISABLE_IRQ_DI_BS2);
*/

#ifdef OS_VXWORKS
/* Suppose to save the default isr before attach but would
 * required isr table in case of multiple IRQ
 * for now restore with myStub()
 */
   intConnect(INUM_TO_IVEC(base_vect), (VOIDFUNCPTR) myStub_sis3803, 0);
   sysIntDisable(level);        /* interrupt level */
#else
   printf("vector : 0x%x\n", base_vect + intnum);
#endif
}
示例#2
0
int adcItrpDisable(register ADC_ID pAdcId)
/* ADC_ID pAdcId;   ADC Object */
{
   if (pAdcId == NULL)
     return(ERROR);
   pAdcId->adcControl &= ~BIT_MASK(ADC_EN_ITRP);
   *ADC_REG(ADC_CR,pAdcId->adcBaseAddr) = pAdcId->adcControl;
   sysIntDisable(pAdcId->vmeItrLevel);
}
/*
 * disable VME interrupt level
 */
static long vxDevDisableInterruptLevelVME (unsigned level)
{
#   if CPU_FAMILY != I80X86
        int s;
        s = sysIntDisable (level);
        if (s!=OK) {
            return S_dev_intDissFail;
        }
        return 0;
#   else
        return S_dev_intEnFail;
#   endif
}
示例#4
0
文件: vmeio.c 项目: cjpl/midas
INLINE void vmeio_int_disable(const DWORD base_adr, int intnum)
/**************************************************************\
 Purpose: Disable the interrupt for the bitwise input intnum (0xff).
          The interrupt vector is then the VECTOR_BASE+intnum
 Input:
  DWORD * base_addr       : base address of the VMEIO
  DWORD * intnum          : interrupt number (input 0:7)
 Output:
    none
 Function value:
    none
\**************************************************************/
{
   volatile DWORD *spec_adr;

#ifdef OS_VXWORKS
   sysIntDisable(7);            /* interrupt level 7 */
#endif
   spec_adr = (DWORD *) (A32D24 + base_adr) + (ENABLE_INT);
   *spec_adr = ~(intnum & 0xff);
}