qemu-devel
[Top][All Lists]
Advanced

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

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


From: Aurelien Jarno
Subject: Re: [Qemu-devel] [PATCH] Add support for CPU_LOG_INT (MIPS targets)
Date: Tue, 14 Oct 2008 11:58:02 +0200
User-agent: Mutt/1.5.18 (2008-05-17)

On Thu, Oct 02, 2008 at 10:04:26PM +0200, Stefan Weil wrote:
> 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);
> +            }

I am not sure we really want to log this case, as no interrupt are
actually triggered (disabled interrupt, already processing an
interrupt, etc.)

> +        }
> +    } 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)

Otherwise looks ok.

-- 
  .''`.  Aurelien Jarno             | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   address@hidden         | address@hidden
   `-    people.debian.org/~aurel32 | www.aurel32.net




reply via email to

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