@@ -171,8 +171,21 @@ struct TCGCPUOps {
#else
/** @do_interrupt: Callback for interrupt handling. */
void (*do_interrupt)(CPUState *cpu);
- /** @cpu_exec_interrupt: Callback for processing interrupts in cpu_exec */
+
+ /**
+ * @cpu_exec_interrupt: Callback for processing target-specific interrupts
+ * @cpu: cpu context
+ * @interrupt_request: Bitmask of pending interrupts
+ *
+ * Called from cpu_handle_interrupt() with the BQL held. Process the
+ * pending interrupt according to the target specific @interrupt_request
+ * masking rules.
+ *
+ * Returns: %true if an interrupt was processed and the next TB should
+ * be restarted, %false to continue normal execution.
+ */
bool (*cpu_exec_interrupt)(CPUState *cpu, int interrupt_request);
+
/** @cpu_exec_reset: Callback for reset in cpu_exec. */
void (*cpu_exec_reset)(CPUState *cpu);
/**
@@ -1248,7 +1248,7 @@ static inline const char *aarch32_mode_name(uint32_t psr)
}
/**
- * arm_cpu_exec_interrupt(): Implementation of the cpu_exec_inrerrupt hook.
+ * arm_cpu_exec_interrupt(): Implementation of the cpu_exec_interrupt hook.
*/
bool arm_cpu_exec_interrupt(CPUState *cs, int interrupt_request);
Expand docstring to clarify that @interrupt_request is a bitmask, the handler is called with BQL held, and document the return value semantics. Fix typo in arm_cpu_exec_interrupt() documentation (s/inrerrupt/interrupt). Signed-off-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com> --- include/accel/tcg/cpu-ops.h | 15 ++++++++++++++- target/arm/internals.h | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-)