static void write_INTC_IPRC(u32 addr, u32 data) { if (INTC_IPRC.reg_data == (u16)data) return; INTC_IPRC.reg_data=(u16)data; SIIDRebuild(); //we need to rebuild the table }
void write_INTC_IPRC(u32 addr, u32 data) { if (INTC_IPRC.reg_data!=(u16)data) { INTC_IPRC.reg_data=(u16)data; SIIDRebuild(); //we need to rebuild the table } }
void intc_reset() { INTC_ICR.reg_data = 0x0; INTC_IPRA.reg_data = 0x0; INTC_IPRB.reg_data = 0x0; INTC_IPRC.reg_data = 0x0; SIIDRebuild(); //rebuild the interrupts table interrupts_reset(); }
void interrupts_reset(void) { //reset interrupts cache interrupt_vpend=0x00000000; interrupt_vmask=0xFFFFFFFF; decoded_srimask=0; for (u32 i=0;i<28;i++) InterruptBit[i]=1<<i; //rebuild the interrupts table SIIDRebuild(); }