/* * Copyright 2014, General Dynamics C4 Systems * * SPDX-License-Identifier: GPL-2.0-only */ #pragma once #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);