qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] Add support for CPU_LOG_INT (MIPS targets)


From: Stefan Weil
Subject: [Qemu-devel] [PATCH] Add support for CPU_LOG_INT (MIPS targets)
Date: Thu, 02 Oct 2008 22:04:26 +0200
User-agent: Mozilla-Thunderbird 2.0.0.16 (X11/20080724)

This patch adds some interrupt logging for MIPS targets.

Please apply it to Qemu trunk.

Regards
Stefan


Add interrupt logging for MIPS targets.

Signed-off-by: Stefan Weil <address@hidden> 

Index: hw/mips_int.c
===================================================================
--- hw/mips_int.c       (Revision 5400)
+++ hw/mips_int.c       (Arbeitskopie)
@@ -1,6 +1,7 @@
 #include "hw.h"
 #include "mips.h"
 #include "cpu.h"
+#include "qemu-log.h"
 
 /* Raise IRQ to CPU if necessary. It must be called every time the active
    IRQ may change */
@@ -12,10 +13,28 @@
         !(env->hflags & MIPS_HFLAG_DM)) {
         if ((env->CP0_Status & env->CP0_Cause & CP0Ca_IP_mask) &&
             !(env->interrupt_request & CPU_INTERRUPT_HARD)) {
+            if (loglevel & CPU_LOG_INT) {
+                fprintf(logfile, "%s: cpu_interrupt (0x%08x,0x%08x)\n", 
__func__,
+                  env->CP0_Status & env->CP0_Cause & CP0Ca_IP_mask,
+                  env->interrupt_request);
+                cpu_dump_state(env, logfile, fprintf, 0);
+            }
             cpu_interrupt(env, CPU_INTERRUPT_HARD);
-       }
-    } else
+        } else {
+            if (loglevel & CPU_LOG_INT) {
+                fprintf(logfile, "%s: no interrupt (0x%08x,0x%08x)\n", 
__func__,
+                  env->CP0_Status & env->CP0_Cause & CP0Ca_IP_mask,
+                  env->interrupt_request);
+                cpu_dump_state(env, logfile, fprintf, 0);
+            }
+        }
+    } else {
+        if (loglevel & CPU_LOG_INT) {
+            fprintf(logfile, "%s: cpu_reset_interrupt\n", __func__);
+            cpu_dump_state(env, logfile, fprintf, 0);
+        }
         cpu_reset_interrupt(env, CPU_INTERRUPT_HARD);
+    }
 }
 
 static void cpu_mips_irq_request(void *opaque, int irq, int level)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]