1/* 2 * Copyright (c) 2010, ETH Zurich. 3 * All rights reserved. 4 * 5 * This file is distributed under the terms in the attached LICENSE file. 6 * If you do not find this file, copies can be found by writing to: 7 * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group. 8 */ 9 10#ifndef KERNEL_ARCH_ARM_IRQ_H 11#define KERNEL_ARCH_ARM_IRQ_H 12 13/* 14 * TODO: Fix for Cortex-A57 / GIC400 15 * Interrupt controller (Cortex-A9 MPU INTC) with up to 128 interrupt requests 16 */ 17#define NUM_INTR (128+32) 18 19/// Size of hardware IRQ dispatch table == #NIDT - #NEXCEPTIONS exceptions 20#define NDISPATCH (NUM_INTR) 21 22struct capability; 23struct idc_recv_msg; 24//struct sysret irq_table_set(struct capability *to, struct idc_recv_msg *msg); 25//struct sysret irq_table_delete(struct capability *to, struct idc_recv_msg *msg); 26 27errval_t irq_table_set(unsigned int nidt, capaddr_t endpoint); 28errval_t irq_table_delete(unsigned int nidt); 29struct kcb; 30errval_t irq_table_notify_domains(struct kcb *kcb); 31void send_user_interrupt(int irq); 32 33#endif // KERNEL_ARCH_ARM_IRQ_H 34