A device calls interrupt() to logically raise an interrupt and interrupt_clear() to lower an interrupt.
The first argument is the object to interrupt, usually a cpu. The integer argument to both functions may indicate an interrupt level or interrupt pin depending on the receiving device.
On ARM the integer argument indicates whether the interrupt is normal or fast, by being either ARM_INT_IRQ or ARM_INT_FIQ defined by the ARM API (by including <simics/arch/arm.h>).
typedef void (*device_interrupt_t)(conf_object_t *, int); typedef void (*device_interrupt_clear_t) (conf_object_t *, int); typedef struct { device_interrupt_t interrupt; device_interrupt_clear_t interrupt_clear; } simple_interrupt_interface_t; #define SIMPLE_INTERRUPT_INTERFACE "simple-interrupt"