accel: extend AccelState and AccelClass to user-mode
Signed-off-by: Claudio Fontana <cfontana@suse.de> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> [claudio: rebased on Richard's splitwx work] Signed-off-by: Claudio Fontana <cfontana@suse.de> Message-Id: <20210204163931.7358-17-cfontana@suse.de> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
7827168471
commit
940e43aa30
@ -438,7 +438,7 @@ Overall
|
|||||||
M: Richard Henderson <richard.henderson@linaro.org>
|
M: Richard Henderson <richard.henderson@linaro.org>
|
||||||
R: Paolo Bonzini <pbonzini@redhat.com>
|
R: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: include/sysemu/accel.h
|
F: include/qemu/accel.h
|
||||||
F: accel/accel.c
|
F: accel/accel.c
|
||||||
F: accel/Makefile.objs
|
F: accel/Makefile.objs
|
||||||
F: accel/stubs/Makefile.objs
|
F: accel/stubs/Makefile.objs
|
||||||
|
50
accel/accel-common.c
Normal file
50
accel/accel-common.c
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* QEMU accel class, components common to system emulation and user mode
|
||||||
|
*
|
||||||
|
* Copyright (c) 2003-2008 Fabrice Bellard
|
||||||
|
* Copyright (c) 2014 Red Hat Inc.
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "qemu/osdep.h"
|
||||||
|
#include "qemu/accel.h"
|
||||||
|
|
||||||
|
static const TypeInfo accel_type = {
|
||||||
|
.name = TYPE_ACCEL,
|
||||||
|
.parent = TYPE_OBJECT,
|
||||||
|
.class_size = sizeof(AccelClass),
|
||||||
|
.instance_size = sizeof(AccelState),
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Lookup AccelClass from opt_name. Returns NULL if not found */
|
||||||
|
AccelClass *accel_find(const char *opt_name)
|
||||||
|
{
|
||||||
|
char *class_name = g_strdup_printf(ACCEL_CLASS_NAME("%s"), opt_name);
|
||||||
|
AccelClass *ac = ACCEL_CLASS(object_class_by_name(class_name));
|
||||||
|
g_free(class_name);
|
||||||
|
return ac;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void register_accel_types(void)
|
||||||
|
{
|
||||||
|
type_register_static(&accel_type);
|
||||||
|
}
|
||||||
|
|
||||||
|
type_init(register_accel_types);
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* QEMU System Emulator, accelerator interfaces
|
* QEMU accel class, system emulation components
|
||||||
*
|
*
|
||||||
* Copyright (c) 2003-2008 Fabrice Bellard
|
* Copyright (c) 2003-2008 Fabrice Bellard
|
||||||
* Copyright (c) 2014 Red Hat Inc.
|
* Copyright (c) 2014 Red Hat Inc.
|
||||||
@ -24,28 +24,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "sysemu/accel.h"
|
#include "qemu/accel.h"
|
||||||
#include "hw/boards.h"
|
#include "hw/boards.h"
|
||||||
#include "sysemu/arch_init.h"
|
#include "sysemu/arch_init.h"
|
||||||
#include "sysemu/sysemu.h"
|
#include "sysemu/sysemu.h"
|
||||||
#include "qom/object.h"
|
#include "qom/object.h"
|
||||||
|
|
||||||
static const TypeInfo accel_type = {
|
|
||||||
.name = TYPE_ACCEL,
|
|
||||||
.parent = TYPE_OBJECT,
|
|
||||||
.class_size = sizeof(AccelClass),
|
|
||||||
.instance_size = sizeof(AccelState),
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Lookup AccelClass from opt_name. Returns NULL if not found */
|
|
||||||
AccelClass *accel_find(const char *opt_name)
|
|
||||||
{
|
|
||||||
char *class_name = g_strdup_printf(ACCEL_CLASS_NAME("%s"), opt_name);
|
|
||||||
AccelClass *ac = ACCEL_CLASS(object_class_by_name(class_name));
|
|
||||||
g_free(class_name);
|
|
||||||
return ac;
|
|
||||||
}
|
|
||||||
|
|
||||||
int accel_init_machine(AccelState *accel, MachineState *ms)
|
int accel_init_machine(AccelState *accel, MachineState *ms)
|
||||||
{
|
{
|
||||||
AccelClass *acc = ACCEL_GET_CLASS(accel);
|
AccelClass *acc = ACCEL_GET_CLASS(accel);
|
||||||
@ -76,10 +60,3 @@ void accel_setup_post(MachineState *ms)
|
|||||||
acc->setup_post(ms, accel);
|
acc->setup_post(ms, accel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void register_accel_types(void)
|
|
||||||
{
|
|
||||||
type_register_static(&accel_type);
|
|
||||||
}
|
|
||||||
|
|
||||||
type_init(register_accel_types);
|
|
24
accel/accel-user.c
Normal file
24
accel/accel-user.c
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
* QEMU accel class, user-mode components
|
||||||
|
*
|
||||||
|
* Copyright 2021 SUSE LLC
|
||||||
|
*
|
||||||
|
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
||||||
|
* See the COPYING file in the top-level directory.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "qemu/osdep.h"
|
||||||
|
#include "qemu/accel.h"
|
||||||
|
|
||||||
|
AccelState *current_accel(void)
|
||||||
|
{
|
||||||
|
static AccelState *accel;
|
||||||
|
|
||||||
|
if (!accel) {
|
||||||
|
AccelClass *ac = accel_find("tcg");
|
||||||
|
|
||||||
|
g_assert(ac != NULL);
|
||||||
|
accel = ACCEL(object_new_with_class(OBJECT_CLASS(ac)));
|
||||||
|
}
|
||||||
|
return accel;
|
||||||
|
}
|
@ -1,4 +1,6 @@
|
|||||||
softmmu_ss.add(files('accel.c'))
|
specific_ss.add(files('accel-common.c'))
|
||||||
|
softmmu_ss.add(files('accel-softmmu.c'))
|
||||||
|
user_ss.add(files('accel-user.c'))
|
||||||
|
|
||||||
subdir('qtest')
|
subdir('qtest')
|
||||||
subdir('kvm')
|
subdir('kvm')
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
#include "qemu/module.h"
|
#include "qemu/module.h"
|
||||||
#include "qemu/option.h"
|
#include "qemu/option.h"
|
||||||
#include "qemu/config-file.h"
|
#include "qemu/config-file.h"
|
||||||
#include "sysemu/accel.h"
|
#include "qemu/accel.h"
|
||||||
#include "sysemu/qtest.h"
|
#include "sysemu/qtest.h"
|
||||||
#include "sysemu/cpus.h"
|
#include "sysemu/cpus.h"
|
||||||
#include "sysemu/cpu-timers.h"
|
#include "sysemu/cpu-timers.h"
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
tcg_ss = ss.source_set()
|
tcg_ss = ss.source_set()
|
||||||
tcg_ss.add(files(
|
tcg_ss.add(files(
|
||||||
|
'tcg-all.c',
|
||||||
'cpu-exec-common.c',
|
'cpu-exec-common.c',
|
||||||
'cpu-exec.c',
|
'cpu-exec.c',
|
||||||
'tcg-runtime-gvec.c',
|
'tcg-runtime-gvec.c',
|
||||||
@ -13,7 +14,6 @@ tcg_ss.add(when: 'CONFIG_PLUGIN', if_true: [files('plugin-gen.c'), libdl])
|
|||||||
specific_ss.add_all(when: 'CONFIG_TCG', if_true: tcg_ss)
|
specific_ss.add_all(when: 'CONFIG_TCG', if_true: tcg_ss)
|
||||||
|
|
||||||
specific_ss.add(when: ['CONFIG_SOFTMMU', 'CONFIG_TCG'], if_true: files(
|
specific_ss.add(when: ['CONFIG_SOFTMMU', 'CONFIG_TCG'], if_true: files(
|
||||||
'tcg-all.c',
|
|
||||||
'cputlb.c',
|
'cputlb.c',
|
||||||
'tcg-cpus.c',
|
'tcg-cpus.c',
|
||||||
'tcg-cpus-mttcg.c',
|
'tcg-cpus-mttcg.c',
|
||||||
|
@ -30,9 +30,12 @@
|
|||||||
#include "tcg/tcg.h"
|
#include "tcg/tcg.h"
|
||||||
#include "qapi/error.h"
|
#include "qapi/error.h"
|
||||||
#include "qemu/error-report.h"
|
#include "qemu/error-report.h"
|
||||||
#include "hw/boards.h"
|
#include "qemu/accel.h"
|
||||||
#include "qapi/qapi-builtin-visit.h"
|
#include "qapi/qapi-builtin-visit.h"
|
||||||
|
|
||||||
|
#ifndef CONFIG_USER_ONLY
|
||||||
#include "tcg-cpus.h"
|
#include "tcg-cpus.h"
|
||||||
|
#endif /* CONFIG_USER_ONLY */
|
||||||
|
|
||||||
struct TCGState {
|
struct TCGState {
|
||||||
AccelState parent_obj;
|
AccelState parent_obj;
|
||||||
@ -97,7 +100,7 @@ static void tcg_accel_instance_init(Object *obj)
|
|||||||
s->mttcg_enabled = default_mttcg_enabled();
|
s->mttcg_enabled = default_mttcg_enabled();
|
||||||
|
|
||||||
/* If debugging enabled, default "auto on", otherwise off. */
|
/* If debugging enabled, default "auto on", otherwise off. */
|
||||||
#ifdef CONFIG_DEBUG_TCG
|
#if defined(CONFIG_DEBUG_TCG) && !defined(CONFIG_USER_ONLY)
|
||||||
s->splitwx_enabled = -1;
|
s->splitwx_enabled = -1;
|
||||||
#else
|
#else
|
||||||
s->splitwx_enabled = 0;
|
s->splitwx_enabled = 0;
|
||||||
@ -114,8 +117,12 @@ static int tcg_init(MachineState *ms)
|
|||||||
mttcg_enabled = s->mttcg_enabled;
|
mttcg_enabled = s->mttcg_enabled;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize TCG regions
|
* Initialize TCG regions only for softmmu.
|
||||||
|
*
|
||||||
|
* This needs to be done later for user mode, because the prologue
|
||||||
|
* generation needs to be delayed so that GUEST_BASE is already set.
|
||||||
*/
|
*/
|
||||||
|
#ifndef CONFIG_USER_ONLY
|
||||||
tcg_region_init();
|
tcg_region_init();
|
||||||
|
|
||||||
if (mttcg_enabled) {
|
if (mttcg_enabled) {
|
||||||
@ -125,6 +132,8 @@ static int tcg_init(MachineState *ms)
|
|||||||
} else {
|
} else {
|
||||||
cpus_register_accel(&tcg_cpus_rr);
|
cpus_register_accel(&tcg_cpus_rr);
|
||||||
}
|
}
|
||||||
|
#endif /* !CONFIG_USER_ONLY */
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
#include "hw/xen/xen-legacy-backend.h"
|
#include "hw/xen/xen-legacy-backend.h"
|
||||||
#include "hw/xen/xen_pt.h"
|
#include "hw/xen/xen_pt.h"
|
||||||
#include "chardev/char.h"
|
#include "chardev/char.h"
|
||||||
#include "sysemu/accel.h"
|
#include "qemu/accel.h"
|
||||||
#include "sysemu/cpus.h"
|
#include "sysemu/cpus.h"
|
||||||
#include "sysemu/xen.h"
|
#include "sysemu/xen.h"
|
||||||
#include "sysemu/runstate.h"
|
#include "sysemu/runstate.h"
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "qemu-common.h"
|
#include "qemu-common.h"
|
||||||
#include "qemu/units.h"
|
#include "qemu/units.h"
|
||||||
|
#include "qemu/accel.h"
|
||||||
#include "sysemu/tcg.h"
|
#include "sysemu/tcg.h"
|
||||||
#include "qemu-version.h"
|
#include "qemu-version.h"
|
||||||
#include <machine/trap.h>
|
#include <machine/trap.h>
|
||||||
@ -909,8 +910,11 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* init tcg before creating CPUs and to get qemu_host_page_size */
|
/* init tcg before creating CPUs and to get qemu_host_page_size */
|
||||||
tcg_exec_init(0, false);
|
{
|
||||||
|
AccelClass *ac = ACCEL_GET_CLASS(current_accel());
|
||||||
|
|
||||||
|
ac->init_machine(NULL);
|
||||||
|
}
|
||||||
cpu_type = parse_cpu_option(cpu_model);
|
cpu_type = parse_cpu_option(cpu_model);
|
||||||
cpu = cpu_create(cpu_type);
|
cpu = cpu_create(cpu_type);
|
||||||
env = cpu->env_ptr;
|
env = cpu->env_ptr;
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
#include "exec/memory.h"
|
#include "exec/memory.h"
|
||||||
#include "sysemu/hostmem.h"
|
#include "sysemu/hostmem.h"
|
||||||
#include "sysemu/blockdev.h"
|
#include "sysemu/blockdev.h"
|
||||||
#include "sysemu/accel.h"
|
#include "qemu/accel.h"
|
||||||
#include "qapi/qapi-types-machine.h"
|
#include "qapi/qapi-types-machine.h"
|
||||||
#include "qemu/module.h"
|
#include "qemu/module.h"
|
||||||
#include "qom/object.h"
|
#include "qom/object.h"
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
#ifndef HW_ACCEL_H
|
#ifndef QEMU_ACCEL_H
|
||||||
#define HW_ACCEL_H
|
#define QEMU_ACCEL_H
|
||||||
|
|
||||||
#include "qom/object.h"
|
#include "qom/object.h"
|
||||||
#include "exec/hwaddr.h"
|
#include "exec/hwaddr.h"
|
||||||
@ -37,8 +37,8 @@ typedef struct AccelClass {
|
|||||||
/*< public >*/
|
/*< public >*/
|
||||||
|
|
||||||
const char *name;
|
const char *name;
|
||||||
#ifndef CONFIG_USER_ONLY
|
|
||||||
int (*init_machine)(MachineState *ms);
|
int (*init_machine)(MachineState *ms);
|
||||||
|
#ifndef CONFIG_USER_ONLY
|
||||||
void (*setup_post)(MachineState *ms, AccelState *accel);
|
void (*setup_post)(MachineState *ms, AccelState *accel);
|
||||||
bool (*has_memory)(MachineState *ms, AddressSpace *as,
|
bool (*has_memory)(MachineState *ms, AddressSpace *as,
|
||||||
hwaddr start_addr, hwaddr size);
|
hwaddr start_addr, hwaddr size);
|
||||||
@ -67,11 +67,13 @@ typedef struct AccelClass {
|
|||||||
OBJECT_GET_CLASS(AccelClass, (obj), TYPE_ACCEL)
|
OBJECT_GET_CLASS(AccelClass, (obj), TYPE_ACCEL)
|
||||||
|
|
||||||
AccelClass *accel_find(const char *opt_name);
|
AccelClass *accel_find(const char *opt_name);
|
||||||
|
AccelState *current_accel(void);
|
||||||
|
|
||||||
|
#ifndef CONFIG_USER_ONLY
|
||||||
int accel_init_machine(AccelState *accel, MachineState *ms);
|
int accel_init_machine(AccelState *accel, MachineState *ms);
|
||||||
|
|
||||||
/* Called just before os_setup_post (ie just before drop OS privs) */
|
/* Called just before os_setup_post (ie just before drop OS privs) */
|
||||||
void accel_setup_post(MachineState *ms);
|
void accel_setup_post(MachineState *ms);
|
||||||
|
#endif /* !CONFIG_USER_ONLY */
|
||||||
|
|
||||||
AccelState *current_accel(void);
|
#endif /* QEMU_ACCEL_H */
|
||||||
|
|
||||||
#endif
|
|
@ -13,7 +13,7 @@
|
|||||||
#ifndef HVF_H
|
#ifndef HVF_H
|
||||||
#define HVF_H
|
#define HVF_H
|
||||||
|
|
||||||
#include "sysemu/accel.h"
|
#include "qemu/accel.h"
|
||||||
#include "qom/object.h"
|
#include "qom/object.h"
|
||||||
|
|
||||||
#ifdef CONFIG_HVF
|
#ifdef CONFIG_HVF
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
#include "qemu/queue.h"
|
#include "qemu/queue.h"
|
||||||
#include "hw/core/cpu.h"
|
#include "hw/core/cpu.h"
|
||||||
#include "exec/memattrs.h"
|
#include "exec/memattrs.h"
|
||||||
#include "sysemu/accel.h"
|
#include "qemu/accel.h"
|
||||||
#include "qom/object.h"
|
#include "qom/object.h"
|
||||||
|
|
||||||
#ifdef NEED_CPU_H
|
#ifdef NEED_CPU_H
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
#define QEMU_KVM_INT_H
|
#define QEMU_KVM_INT_H
|
||||||
|
|
||||||
#include "exec/memory.h"
|
#include "exec/memory.h"
|
||||||
#include "sysemu/accel.h"
|
#include "qemu/accel.h"
|
||||||
#include "sysemu/kvm.h"
|
#include "sysemu/kvm.h"
|
||||||
|
|
||||||
typedef struct KVMSlot
|
typedef struct KVMSlot
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "qemu-common.h"
|
#include "qemu-common.h"
|
||||||
#include "qemu/units.h"
|
#include "qemu/units.h"
|
||||||
|
#include "qemu/accel.h"
|
||||||
#include "sysemu/tcg.h"
|
#include "sysemu/tcg.h"
|
||||||
#include "qemu-version.h"
|
#include "qemu-version.h"
|
||||||
#include <sys/syscall.h>
|
#include <sys/syscall.h>
|
||||||
@ -701,8 +702,11 @@ int main(int argc, char **argv, char **envp)
|
|||||||
cpu_type = parse_cpu_option(cpu_model);
|
cpu_type = parse_cpu_option(cpu_model);
|
||||||
|
|
||||||
/* init tcg before creating CPUs and to get qemu_host_page_size */
|
/* init tcg before creating CPUs and to get qemu_host_page_size */
|
||||||
tcg_exec_init(0, false);
|
{
|
||||||
|
AccelClass *ac = ACCEL_GET_CLASS(current_accel());
|
||||||
|
|
||||||
|
ac->init_machine(NULL);
|
||||||
|
}
|
||||||
cpu = cpu_create(cpu_type);
|
cpu = cpu_create(cpu_type);
|
||||||
env = cpu->env_ptr;
|
env = cpu->env_ptr;
|
||||||
cpu_reset(cpu);
|
cpu_reset(cpu);
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
#include "sysemu/kvm.h"
|
#include "sysemu/kvm.h"
|
||||||
#include "sysemu/runstate.h"
|
#include "sysemu/runstate.h"
|
||||||
#include "sysemu/tcg.h"
|
#include "sysemu/tcg.h"
|
||||||
#include "sysemu/accel.h"
|
#include "qemu/accel.h"
|
||||||
#include "hw/boards.h"
|
#include "hw/boards.h"
|
||||||
#include "migration/vmstate.h"
|
#include "migration/vmstate.h"
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#include "exec/ioport.h"
|
#include "exec/ioport.h"
|
||||||
#include "exec/memory.h"
|
#include "exec/memory.h"
|
||||||
#include "hw/irq.h"
|
#include "hw/irq.h"
|
||||||
#include "sysemu/accel.h"
|
#include "qemu/accel.h"
|
||||||
#include "sysemu/cpu-timers.h"
|
#include "sysemu/cpu-timers.h"
|
||||||
#include "qemu/config-file.h"
|
#include "qemu/config-file.h"
|
||||||
#include "qemu/option.h"
|
#include "qemu/option.h"
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
#include "qemu/error-report.h"
|
#include "qemu/error-report.h"
|
||||||
#include "qemu/sockets.h"
|
#include "qemu/sockets.h"
|
||||||
#include "sysemu/accel.h"
|
#include "qemu/accel.h"
|
||||||
#include "hw/usb.h"
|
#include "hw/usb.h"
|
||||||
#include "hw/isa/isa.h"
|
#include "hw/isa/isa.h"
|
||||||
#include "hw/scsi/scsi.h"
|
#include "hw/scsi/scsi.h"
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
#include "exec/address-spaces.h"
|
#include "exec/address-spaces.h"
|
||||||
|
|
||||||
#include "qemu-common.h"
|
#include "qemu-common.h"
|
||||||
#include "sysemu/accel.h"
|
#include "qemu/accel.h"
|
||||||
#include "sysemu/reset.h"
|
#include "sysemu/reset.h"
|
||||||
#include "sysemu/runstate.h"
|
#include "sysemu/runstate.h"
|
||||||
#include "hw/boards.h"
|
#include "hw/boards.h"
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#ifndef HVF_I386_H
|
#ifndef HVF_I386_H
|
||||||
#define HVF_I386_H
|
#define HVF_I386_H
|
||||||
|
|
||||||
#include "sysemu/accel.h"
|
#include "qemu/accel.h"
|
||||||
#include "sysemu/hvf.h"
|
#include "sysemu/hvf.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
#include "x86.h"
|
#include "x86.h"
|
||||||
|
@ -69,7 +69,7 @@
|
|||||||
#include "exec/address-spaces.h"
|
#include "exec/address-spaces.h"
|
||||||
#include "hw/i386/apic_internal.h"
|
#include "hw/i386/apic_internal.h"
|
||||||
#include "qemu/main-loop.h"
|
#include "qemu/main-loop.h"
|
||||||
#include "sysemu/accel.h"
|
#include "qemu/accel.h"
|
||||||
#include "target/i386/cpu.h"
|
#include "target/i386/cpu.h"
|
||||||
|
|
||||||
#include "hvf-cpus.h"
|
#include "hvf-cpus.h"
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
#include "hw/i386/apic_internal.h"
|
#include "hw/i386/apic_internal.h"
|
||||||
#include "qemu/main-loop.h"
|
#include "qemu/main-loop.h"
|
||||||
#include "sysemu/accel.h"
|
#include "qemu/accel.h"
|
||||||
#include "target/i386/cpu.h"
|
#include "target/i386/cpu.h"
|
||||||
|
|
||||||
// TODO: taskswitch handling
|
// TODO: taskswitch handling
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
#include "exec/address-spaces.h"
|
#include "exec/address-spaces.h"
|
||||||
#include "exec/ioport.h"
|
#include "exec/ioport.h"
|
||||||
#include "qemu-common.h"
|
#include "qemu-common.h"
|
||||||
#include "sysemu/accel.h"
|
#include "qemu/accel.h"
|
||||||
#include "sysemu/whpx.h"
|
#include "sysemu/whpx.h"
|
||||||
#include "sysemu/cpus.h"
|
#include "sysemu/cpus.h"
|
||||||
#include "sysemu/runstate.h"
|
#include "sysemu/runstate.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user