|
@@ -19,15 +19,12 @@
|
|
|
|
|
|
#include "qemu/osdep.h"
|
|
#include "qemu/osdep.h"
|
|
#include "qapi/error.h"
|
|
#include "qapi/error.h"
|
|
-#include "hw/qdev-core.h"
|
|
|
|
-#include "hw/qdev-properties.h"
|
|
|
|
#include "qemu/error-report.h"
|
|
#include "qemu/error-report.h"
|
|
#include "qemu/qemu-print.h"
|
|
#include "qemu/qemu-print.h"
|
|
#include "migration/vmstate.h"
|
|
#include "migration/vmstate.h"
|
|
#ifndef CONFIG_USER_ONLY
|
|
#ifndef CONFIG_USER_ONLY
|
|
#include "hw/core/sysemu-cpu-ops.h"
|
|
#include "hw/core/sysemu-cpu-ops.h"
|
|
#include "exec/address-spaces.h"
|
|
#include "exec/address-spaces.h"
|
|
-#include "exec/memory.h"
|
|
|
|
#endif
|
|
#endif
|
|
#include "system/accel-ops.h"
|
|
#include "system/accel-ops.h"
|
|
#include "system/cpus.h"
|
|
#include "system/cpus.h"
|
|
@@ -178,61 +175,6 @@ void cpu_exec_unrealizefn(CPUState *cpu)
|
|
accel_cpu_common_unrealize(cpu);
|
|
accel_cpu_common_unrealize(cpu);
|
|
}
|
|
}
|
|
|
|
|
|
-/*
|
|
|
|
- * This can't go in hw/core/cpu.c because that file is compiled only
|
|
|
|
- * once for both user-mode and system builds.
|
|
|
|
- */
|
|
|
|
-static const Property cpu_common_props[] = {
|
|
|
|
-#ifdef CONFIG_USER_ONLY
|
|
|
|
- /*
|
|
|
|
- * Create a property for the user-only object, so users can
|
|
|
|
- * adjust prctl(PR_SET_UNALIGN) from the command-line.
|
|
|
|
- * Has no effect if the target does not support the feature.
|
|
|
|
- */
|
|
|
|
- DEFINE_PROP_BOOL("prctl-unalign-sigbus", CPUState,
|
|
|
|
- prctl_unalign_sigbus, false),
|
|
|
|
-#else
|
|
|
|
- /*
|
|
|
|
- * Create a memory property for system CPU object, so users can
|
|
|
|
- * wire up its memory. The default if no link is set up is to use
|
|
|
|
- * the system address space.
|
|
|
|
- */
|
|
|
|
- DEFINE_PROP_LINK("memory", CPUState, memory, TYPE_MEMORY_REGION,
|
|
|
|
- MemoryRegion *),
|
|
|
|
-#endif
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-#ifndef CONFIG_USER_ONLY
|
|
|
|
-static bool cpu_get_start_powered_off(Object *obj, Error **errp)
|
|
|
|
-{
|
|
|
|
- CPUState *cpu = CPU(obj);
|
|
|
|
- return cpu->start_powered_off;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static void cpu_set_start_powered_off(Object *obj, bool value, Error **errp)
|
|
|
|
-{
|
|
|
|
- CPUState *cpu = CPU(obj);
|
|
|
|
- cpu->start_powered_off = value;
|
|
|
|
-}
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
-void cpu_class_init_props(DeviceClass *dc)
|
|
|
|
-{
|
|
|
|
-#ifndef CONFIG_USER_ONLY
|
|
|
|
- ObjectClass *oc = OBJECT_CLASS(dc);
|
|
|
|
-
|
|
|
|
- /*
|
|
|
|
- * We can't use DEFINE_PROP_BOOL in the Property array for this
|
|
|
|
- * property, because we want this to be settable after realize.
|
|
|
|
- */
|
|
|
|
- object_class_property_add_bool(oc, "start-powered-off",
|
|
|
|
- cpu_get_start_powered_off,
|
|
|
|
- cpu_set_start_powered_off);
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
- device_class_set_props(dc, cpu_common_props);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
void cpu_exec_initfn(CPUState *cpu)
|
|
void cpu_exec_initfn(CPUState *cpu)
|
|
{
|
|
{
|
|
#ifndef CONFIG_USER_ONLY
|
|
#ifndef CONFIG_USER_ONLY
|