qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Julian Ganz <neither@nut.email>
To: qemu-devel@nongnu.org
Cc: Julian Ganz <neither@nut.email>,
	Richard Henderson <richard.henderson@linaro.org>,
	Helge Deller <deller@gmx.de>
Subject: [PATCH v4 08/23] target/hppa: call plugin trap callbacks
Date: Sun, 11 May 2025 15:14:00 +0200	[thread overview]
Message-ID: <6c9c98627a21c77f66e12c25b3a4f44d9e7b4bdc.1746968215.git.neither@nut.email> (raw)
In-Reply-To: <cover.1746968215.git.neither@nut.email>

We identified a number of exceptions as interrupts, and we assume any
unknown exception is also an interrupt. HPPA appears to not have any
form of host-call.

This change places the hook for PA-RISC targets.

Signed-off-by: Julian Ganz <neither@nut.email>
---
 target/hppa/int_helper.c | 44 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/target/hppa/int_helper.c b/target/hppa/int_helper.c
index 7d48643bb6..e9325319a7 100644
--- a/target/hppa/int_helper.c
+++ b/target/hppa/int_helper.c
@@ -24,6 +24,7 @@
 #include "exec/helper-proto.h"
 #include "hw/core/cpu.h"
 #include "hw/hppa/hppa_hardware.h"
+#include "qemu/plugin.h"
 
 static void eval_interrupt(HPPACPU *cpu)
 {
@@ -95,6 +96,7 @@ void hppa_cpu_do_interrupt(CPUState *cs)
     CPUHPPAState *env = &cpu->env;
     int i = cs->exception_index;
     uint64_t old_psw, old_gva_offset_mask;
+    uint64_t last_pc = cs->cc->get_pc(cs);
 
     /* As documented in pa2.0 -- interruption handling.  */
     /* step 1 */
@@ -208,6 +210,48 @@ void hppa_cpu_do_interrupt(CPUState *cs)
     env->iasq_f = 0;
     env->iasq_b = 0;
 
+    switch (i) {
+    case EXCP_HPMC:
+    case EXCP_POWER_FAIL:
+    case EXCP_RC:
+    case EXCP_EXT_INTERRUPT:
+    case EXCP_LPMC:
+    case EXCP_PER_INTERRUPT:
+    case EXCP_TOC:
+        qemu_plugin_vcpu_exception_cb(cs, last_pc);
+        break;
+    case EXCP_ITLB_MISS:
+    case EXCP_IMP:
+    case EXCP_ILL:
+    case EXCP_BREAK:
+    case EXCP_PRIV_OPR:
+    case EXCP_PRIV_REG:
+    case EXCP_OVERFLOW:
+    case EXCP_COND:
+    case EXCP_ASSIST:
+    case EXCP_DTLB_MISS:
+    case EXCP_NA_ITLB_MISS:
+    case EXCP_NA_DTLB_MISS:
+    case EXCP_DMP:
+    case EXCP_DMB:
+    case EXCP_TLB_DIRTY:
+    case EXCP_PAGE_REF:
+    case EXCP_ASSIST_EMU:
+    case EXCP_HPT:
+    case EXCP_LPT:
+    case EXCP_TB:
+    case EXCP_DMAR:
+    case EXCP_DMPI:
+    case EXCP_UNALIGN:
+    case EXCP_SYSCALL:
+    case EXCP_SYSCALL_LWS:
+        qemu_plugin_vcpu_exception_cb(cs, last_pc);
+        break;
+    default:
+        qemu_plugin_vcpu_interrupt_cb(cs, last_pc);
+        break;
+    }
+
     if (qemu_loglevel_mask(CPU_LOG_INT)) {
         static const char * const names[] = {
             [EXCP_HPMC]          = "high priority machine check",
-- 
2.49.0



  parent reply	other threads:[~2025-05-11 13:18 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-11 13:13 [PATCH v4 00/23] tcg-plugins: add hooks for discontinuities Julian Ganz
2025-05-11 13:13 ` [PATCH v4 01/23] plugins: add types for callbacks related to certain discontinuities Julian Ganz
2025-05-12 22:35   ` Pierrick Bouvier
2025-05-11 13:13 ` [PATCH v4 02/23] plugins: add API for registering discontinuity callbacks Julian Ganz
2025-05-12 22:36   ` Pierrick Bouvier
2025-05-11 13:13 ` [PATCH v4 03/23] plugins: add hooks for new discontinuity related callbacks Julian Ganz
2025-05-12 22:37   ` Pierrick Bouvier
2025-05-11 13:13 ` [PATCH v4 04/23] contrib/plugins: add plugin showcasing new dicontinuity related API Julian Ganz
2025-05-12 22:45   ` Pierrick Bouvier
2025-05-13  7:22     ` Julian Ganz
2025-05-11 13:13 ` [PATCH v4 05/23] target/alpha: call plugin trap callbacks Julian Ganz
2025-05-11 13:13 ` [PATCH v4 06/23] target/arm: " Julian Ganz
2025-05-11 13:13 ` [PATCH v4 07/23] target/avr: " Julian Ganz
2025-05-11 13:14 ` Julian Ganz [this message]
2025-05-11 13:14 ` [PATCH v4 09/23] target/i386: " Julian Ganz
2025-05-11 13:14 ` [PATCH v4 10/23] target/loongarch: " Julian Ganz
2025-05-11 13:14 ` [PATCH v4 11/23] target/m68k: " Julian Ganz
2025-05-11 13:14 ` [PATCH v4 12/23] target/microblaze: " Julian Ganz
2025-05-11 13:14 ` [PATCH v4 13/23] target/mips: " Julian Ganz
2025-05-11 13:14 ` [PATCH v4 14/23] target/openrisc: " Julian Ganz
2025-05-11 13:14 ` [PATCH v4 15/23] target/ppc: " Julian Ganz
2025-05-11 13:14 ` [PATCH v4 16/23] target/riscv: " Julian Ganz
2025-05-12 12:49   ` Daniel Henrique Barboza
2025-05-12 22:50   ` Alistair Francis
2025-05-11 13:14 ` [PATCH v4 17/23] target/rx: " Julian Ganz
2025-05-11 13:14 ` [PATCH v4 18/23] target/s390x: " Julian Ganz
2025-05-12  7:47   ` David Hildenbrand
     [not found]     ` <20250512084352.2424-1-ganz@fzi.de>
2025-05-12  8:55       ` Julian Ganz
2025-05-12  9:09       ` David Hildenbrand
2025-05-11 13:14 ` [PATCH v4 19/23] target/sparc: " Julian Ganz
2025-05-11 13:14 ` [PATCH v4 20/23] target/xtensa: " Julian Ganz
2025-05-11 20:40   ` Max Filippov
2025-05-11 13:14 ` [PATCH v4 21/23] tests: add plugin asserting correctness of discon event's to_pc Julian Ganz
2025-05-13  0:25   ` Pierrick Bouvier
2025-05-13  7:45     ` Julian Ganz
2025-05-13 19:15       ` Julian Ganz
2025-05-11 13:22 ` [PATCH v4 22/23] tests: add test for double-traps on rv64 Julian Ganz
2025-05-12 12:50   ` Daniel Henrique Barboza
2025-05-11 13:22 ` [PATCH v4 23/23] tests: add test with interrupted memory accesses " Julian Ganz
2025-05-12 12:51   ` Daniel Henrique Barboza

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6c9c98627a21c77f66e12c25b3a4f44d9e7b4bdc.1746968215.git.neither@nut.email \
    --to=neither@nut.email \
    --cc=deller@gmx.de \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).