/* * Copyright 2014, General Dynamics C4 Systems * * This software may be distributed and modified according to the terms of * the GNU General Public License version 2. Note that NO WARRANTY is provided. * See "LICENSE_GPLv2.txt" for details. * * @TAG(GD_GPL) */ #ifndef __OBJECT_INTERRUPT_H #define __OBJECT_INTERRUPT_H #include #include #include #include #include exception_t decodeIRQControlInvocation(word_t invLabel, word_t length, cte_t *srcSlot, extra_caps_t excaps, word_t *buffer); exception_t invokeIRQControl(irq_t irq, cte_t *handlerSlot, cte_t *controlSlot); exception_t decodeIRQHandlerInvocation(word_t invLabel, irq_t irq, extra_caps_t excaps); void invokeIRQHandler_AckIRQ(irq_t irq); void invokeIRQHandler_SetIRQHandler(irq_t irq, cap_t cap, cte_t *slot); void invokeIRQHandler_ClearIRQHandler(irq_t irq); void deletingIRQHandler(irq_t irq); void deletedIRQHandler(irq_t irq); void handleInterrupt(irq_t irq); bool_t isIRQActive(irq_t irq); void setIRQState(irq_state_t irqState, irq_t irq); #endif