This interface is implemented by CoreInt capable interrupt controllers and allows the processor to automatically acknowledge external interrupts without software intervention.
The acknowledge function is called by the processor when an external interrupt is taken. If coreint is enabled in the interrupt controller, the interrupt controller should lower the interrupt signal towards the processor and return the interrupt source vector. This way the software doesn't have to go and query the interrupt controller for the source. If coreint is not enabled, the interrupt should not do anything and the vector value in the reply is undefined.
#include <simics/pywrap.h> #include <simics/base/types.h> #if defined(__cplusplus) extern "C" { #endif typedef struct { bool enabled; uint64 vector; } coreint_reply_t; #define COREINT_INTERFACE "coreint" SIM_INTERFACE(coreint) { coreint_reply_t (*acknowledge)(conf_object_t *obj, conf_object_t *core); };