36 lines
1.3 KiB
C
36 lines
1.3 KiB
C
/*
|
|
* 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 <types.h>
|
|
#include <api/failures.h>
|
|
#include <object/structures.h>
|
|
#include <arch/object/interrupt.h>
|
|
#include <plat/machine.h>
|
|
|
|
exception_t decodeIRQControlInvocation(word_t label, word_t length,
|
|
cte_t *srcSlot, extra_caps_t extraCaps,
|
|
word_t *buffer);
|
|
exception_t invokeIRQControl(irq_t irq, cte_t *handlerSlot, cte_t *controlSlot);
|
|
exception_t decodeIRQHandlerInvocation(word_t label, word_t length, irq_t irq,
|
|
extra_caps_t extraCaps, word_t *buffer);
|
|
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 invokeIRQHandler_SetMode(irq_t irq, bool_t levelTrigger, bool_t polarityLow);
|
|
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
|