/* Process an interrupt request on the given IPC.  */
static void ipc_handler_process(Ipc *p_ipc)
/* Process an interrupt request on the given IPC.  */
static void ipc_handler_process(Ipc *p_ipc)
{
	uint32_t status, i, ipc;
	(p_ipc == IPC0) ? (ipc = 0) : (ipc = 1);
	status = ipc_get_status(p_ipc);
	status &= ipc_get_interrupt_mask(p_ipc);
	if (status != 0) {
		i = 0;
		while ((status != 0) && (i < IPC_MAX_INTERRUPT_SOURCES)) {
			if ((status & ipc_handler[ipc][i].mask) != 0) {
				ipc_handler[ipc][i].handler(p_ipc, ipc_handler[ipc][i].mask);
				status &= ~(ipc_handler[ipc][i].mask);
			}
			i++;
		}
	}
}