33 lines
1.0 KiB
C
33 lines
1.0 KiB
C
/*
|
|
* Copyright (c) 2010, ETH Zurich.
|
|
* All rights reserved.
|
|
*
|
|
* This file is distributed under the terms in the attached LICENSE file.
|
|
* If you do not find this file, copies can be found by writing to:
|
|
* ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
|
|
*/
|
|
|
|
#ifndef KERNEL_ARCH_ARM_IRQ_H
|
|
#define KERNEL_ARCH_ARM_IRQ_H
|
|
|
|
/*
|
|
* INTIDs from exceptions to and including SPIs
|
|
*/
|
|
#define NUM_INTR (1024)
|
|
|
|
/// Size of hardware IRQ dispatch table == #NIDT - #NEXCEPTIONS exceptions
|
|
#define NDISPATCH (NUM_INTR)
|
|
|
|
struct capability;
|
|
struct idc_recv_msg;
|
|
errval_t irq_table_set(unsigned int nidt, capaddr_t endpoint);
|
|
errval_t irq_connect(struct capability *irq_dest, capaddr_t endpoint);
|
|
errval_t irq_table_delete(unsigned int nidt);
|
|
errval_t irq_table_alloc_dest_cap(uint8_t dcn_vbits, capaddr_t dcn,
|
|
capaddr_t out_cap_addr, int vec_hint);
|
|
struct kcb;
|
|
errval_t irq_table_notify_domains(struct kcb *kcb);
|
|
void send_user_interrupt(int irq);
|
|
|
|
#endif // KERNEL_ARCH_ARM_IRQ_H
|