/*! * ======== InterruptArp32_intUnregister ======== */ Void InterruptArp32_intUnregister(UInt16 remoteProcId, IInterrupt_IntInfo *intInfo) { UInt16 index; UInt mbxIdx; Hwi_Handle hwiHandle; InterruptArp32_FxnTable *table; index = PROCID(remoteProcId); if ((remoteProcId == DSP0_ID) || (remoteProcId == BENELLI_CORE0_ID)) { mbxIdx = 0; } else if ((remoteProcId == DSP1_ID) || (remoteProcId == BENELLI_CORE1_ID)) { mbxIdx = 1; } else if (remoteProcId < InterruptArp32_NUM_EVES) { mbxIdx = 2; } /* Disable the mailbox interrupt source */ InterruptArp32_intDisable(remoteProcId, intInfo); InterruptArp32_module->numPlugged[mbxIdx]--; if (InterruptArp32_module->numPlugged[mbxIdx] == 0) { /* Delete the Hwi */ hwiHandle = Hwi_getHandle(InterruptArp32_eveInterruptTable[index]); Hwi_delete(&hwiHandle); } /* Clear the FxnTable entry for the remote processor */ table = &(InterruptArp32_module->fxnTable[index]); table->func = NULL; table->arg = 0; }
/*! * ======== InterruptArp32_intUnregister ======== */ Void InterruptArp32_intUnregister(UInt16 remoteProcId, IInterrupt_IntInfo *intInfo) { Hwi_Handle hwiHandle; InterruptArp32_FxnTable *table; /* Disable the mailbox interrupt source */ InterruptArp32_intDisable(remoteProcId, intInfo); InterruptArp32_module->numPlugged--; if (InterruptArp32_module->numPlugged == 0) { /* Delete the Hwi */ hwiHandle = Hwi_getHandle(intInfo->intVectorId); Hwi_delete(&hwiHandle); } /* Clear the FxnTable entry for the remote processor */ table = &(InterruptArp32_module->fxnTable); table->func = NULL; table->arg = 0; }