Revision d12d51d5 kqemu.c

b/kqemu.c
47 47
#define DEBUG
48 48
//#define PROFILE
49 49

  
50

  
51
#ifdef DEBUG
52
#  define LOG_INT(...) do {              \
53
     if (loglevel & CPU_LOG_INT)         \
54
       fprintf(logfile, ## __VA_ARGS__); \
55
   } while (0)
56
#  define LOG_INT_STATE(env) \
57
      do {                                            \
58
         if (loglevel & CPU_LOG_INT)                  \
59
            cpu_dump_state(env, logfile, fprintf, 0); \
60
      } while (0)
61
#else
62
#  define LOG_INT(...) do { } while (0)
63
#  define LOG_INT_STATE(env) do { } while (0)
64
#endif
65

  
50 66
#include <unistd.h>
51 67
#include <fcntl.h>
52 68
#include "kqemu.h"
......
241 257

  
242 258
void kqemu_flush_page(CPUState *env, target_ulong addr)
243 259
{
244
#if defined(DEBUG)
245
    if (loglevel & CPU_LOG_INT) {
246
        fprintf(logfile, "kqemu_flush_page: addr=" TARGET_FMT_lx "\n", addr);
247
    }
248
#endif
260
    LOG_INT("kqemu_flush_page: addr=" TARGET_FMT_lx "\n", addr);
249 261
    if (nb_pages_to_flush >= KQEMU_MAX_PAGES_TO_FLUSH)
250 262
        nb_pages_to_flush = KQEMU_FLUSH_ALL;
251 263
    else
......
254 266

  
255 267
void kqemu_flush(CPUState *env, int global)
256 268
{
257
#ifdef DEBUG
258
    if (loglevel & CPU_LOG_INT) {
259
        fprintf(logfile, "kqemu_flush:\n");
260
    }
261
#endif
269
    LOG_INT("kqemu_flush:\n");
262 270
    nb_pages_to_flush = KQEMU_FLUSH_ALL;
263 271
}
264 272

  
265 273
void kqemu_set_notdirty(CPUState *env, ram_addr_t ram_addr)
266 274
{
267
#ifdef DEBUG
268
    if (loglevel & CPU_LOG_INT) {
269
        fprintf(logfile, "kqemu_set_notdirty: addr=%08lx\n", 
275
    LOG_INT("kqemu_set_notdirty: addr=%08lx\n", 
270 276
                (unsigned long)ram_addr);
271
    }
272
#endif
273 277
    /* we only track transitions to dirty state */
274 278
    if (phys_ram_dirty[ram_addr >> TARGET_PAGE_BITS] != 0xff)
275 279
        return;
......
703 707
#ifdef CONFIG_PROFILER
704 708
    ti = profile_getclock();
705 709
#endif
706
#ifdef DEBUG
707
    if (loglevel & CPU_LOG_INT) {
708
        fprintf(logfile, "kqemu: cpu_exec: enter\n");
709
        cpu_dump_state(env, logfile, fprintf, 0);
710
    }
711
#endif
710
    LOG_INT("kqemu: cpu_exec: enter\n");
711
    LOG_INT_STATE(env);
712 712
    for(i = 0; i < CPU_NB_REGS; i++)
713 713
        kenv->regs[i] = env->regs[i];
714 714
    kenv->eip = env->eip;
......
867 867
    else
868 868
        env->hflags &= ~HF_OSFXSR_MASK;
869 869

  
870
#ifdef DEBUG
871
    if (loglevel & CPU_LOG_INT) {
872
        fprintf(logfile, "kqemu: kqemu_cpu_exec: ret=0x%x\n", ret);
873
    }
874
#endif
870
    LOG_INT("kqemu: kqemu_cpu_exec: ret=0x%x\n", ret);
875 871
    if (ret == KQEMU_RET_SYSCALL) {
876 872
        /* syscall instruction */
877 873
        return do_syscall(env, kenv);
......
884 880
#ifdef CONFIG_PROFILER
885 881
        kqemu_ret_int_count++;
886 882
#endif
887
#ifdef DEBUG
888
        if (loglevel & CPU_LOG_INT) {
889
            fprintf(logfile, "kqemu: interrupt v=%02x:\n",
890
                    env->exception_index);
891
            cpu_dump_state(env, logfile, fprintf, 0);
892
        }
893
#endif
883
        LOG_INT("kqemu: interrupt v=%02x:\n", env->exception_index);
884
        LOG_INT_STATE(env);
894 885
        return 1;
895 886
    } else if ((ret & 0xff00) == KQEMU_RET_EXCEPTION) {
896 887
        env->exception_index = ret & 0xff;
......
900 891
#ifdef CONFIG_PROFILER
901 892
        kqemu_ret_excp_count++;
902 893
#endif
903
#ifdef DEBUG
904
        if (loglevel & CPU_LOG_INT) {
905
            fprintf(logfile, "kqemu: exception v=%02x e=%04x:\n",
894
        LOG_INT("kqemu: exception v=%02x e=%04x:\n",
906 895
                    env->exception_index, env->error_code);
907
            cpu_dump_state(env, logfile, fprintf, 0);
908
        }
909
#endif
896
        LOG_INT_STATE(env);
910 897
        return 1;
911 898
    } else if (ret == KQEMU_RET_INTR) {
912 899
#ifdef CONFIG_PROFILER
913 900
        kqemu_ret_intr_count++;
914 901
#endif
915
#ifdef DEBUG
916
        if (loglevel & CPU_LOG_INT) {
917
            cpu_dump_state(env, logfile, fprintf, 0);
918
        }
919
#endif
902
        LOG_INT_STATE(env);
920 903
        return 0;
921 904
    } else if (ret == KQEMU_RET_SOFTMMU) {
922 905
#ifdef CONFIG_PROFILER
......
925 908
            kqemu_record_pc(pc);
926 909
        }
927 910
#endif
928
#ifdef DEBUG
929
        if (loglevel & CPU_LOG_INT) {
930
            cpu_dump_state(env, logfile, fprintf, 0);
931
        }
932
#endif
911
        LOG_INT_STATE(env);
933 912
        return 2;
934 913
    } else {
935 914
        cpu_dump_state(env, stderr, fprintf, 0);

Also available in: Unified diff