From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JrzTm-0007Ys-6x for qemu-devel@nongnu.org; Fri, 02 May 2008 13:55:30 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JrzTl-0007Y9-9v for qemu-devel@nongnu.org; Fri, 02 May 2008 13:55:29 -0400 Received: from [199.232.76.173] (port=52466 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JrzTl-0007Xx-0G for qemu-devel@nongnu.org; Fri, 02 May 2008 13:55:29 -0400 Received: from mx1.redhat.com ([66.187.233.31]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JrzTk-00073l-HS for qemu-devel@nongnu.org; Fri, 02 May 2008 13:55:28 -0400 From: Glauber Costa Date: Fri, 2 May 2008 14:49:12 -0300 Message-Id: <1209750575402-git-send-email-gcosta@redhat.com> In-Reply-To: <12097505681610-git-send-email-gcosta@redhat.com> References: <12097505533742-git-send-email-gcosta@redhat.com> <1209750562292-git-send-email-gcosta@redhat.com> <12097505681610-git-send-email-gcosta@redhat.com> Subject: [Qemu-devel] [PATCH 3/4] [PATCH] init env made accel driver Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kvm-devel@lists.sourceforge.net, mtosatti@redhat.com --- exec-all.h | 8 +++++++- kqemu.c | 1 + target-i386/helper2.c | 4 +--- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/exec-all.h b/exec-all.h index 621e1ca..784d0ac 100644 --- a/exec-all.h +++ b/exec-all.h @@ -577,6 +577,7 @@ static inline target_ulong get_phys_addr_code(CPUState *env, target_ulong addr) typedef struct QEMUAccel { void (*cpu_interrupt)(CPUState *env); int (*exec_interrupt)(CPUState *env); + void (*init_env)(CPUState *env); } QEMUAccel; extern QEMUAccel *current_accel; @@ -601,10 +602,15 @@ static inline int accel_exec_interrupt(CPUState *env, int *ret) return 0; } +static inline void accel_init_env(CPUState *env) +{ + if (current_accel && current_accel->init_env) + current_accel->init_env(env); +} + #ifdef USE_KQEMU #define KQEMU_MODIFY_PAGE_MASK (0xff & ~(VGA_DIRTY_FLAG | CODE_DIRTY_FLAG)) -int kqemu_init(CPUState *env); int kqemu_cpu_exec(CPUState *env); void kqemu_flush_page(CPUState *env, target_ulong addr); void kqemu_flush(CPUState *env, int global); diff --git a/kqemu.c b/kqemu.c index 08622ad..95d8a94 100644 --- a/kqemu.c +++ b/kqemu.c @@ -172,6 +172,7 @@ extern int kqemu_exec_interrupt(CPUState *env); QEMUAccel kqemu_accel = { .cpu_interrupt = kqemu_cpu_interrupt, .exec_interrupt = kqemu_exec_interrupt, + .init_env = kqemu_init, }; int kqemu_init(CPUState *env) diff --git a/target-i386/helper2.c b/target-i386/helper2.c index 551a0d8..b11bc22 100644 --- a/target-i386/helper2.c +++ b/target-i386/helper2.c @@ -111,9 +111,7 @@ CPUX86State *cpu_x86_init(const char *cpu_model) return NULL; } cpu_reset(env); -#ifdef USE_KQEMU - kqemu_init(env); -#endif + accel_init_env(env); return env; } -- 1.5.0.6