xref: /qemu/hw/core/cpu-user.c (revision ca05578fc80f4253ed19f4c4128a4cbd5b83f0b5)
1e3a575f5SPhilippe Mathieu-Daudé /*
2e3a575f5SPhilippe Mathieu-Daudé  * QEMU CPU model (user specific)
3e3a575f5SPhilippe Mathieu-Daudé  *
4e3a575f5SPhilippe Mathieu-Daudé  * Copyright (c) Linaro, Ltd.
5e3a575f5SPhilippe Mathieu-Daudé  *
6e3a575f5SPhilippe Mathieu-Daudé  * SPDX-License-Identifier: GPL-2.0-or-later
7e3a575f5SPhilippe Mathieu-Daudé  */
8e3a575f5SPhilippe Mathieu-Daudé 
9e3a575f5SPhilippe Mathieu-Daudé #include "qemu/osdep.h"
10e3a575f5SPhilippe Mathieu-Daudé #include "hw/qdev-core.h"
11e3a575f5SPhilippe Mathieu-Daudé #include "hw/qdev-properties.h"
12e3a575f5SPhilippe Mathieu-Daudé #include "hw/core/cpu.h"
13*ca05578fSPhilippe Mathieu-Daudé #include "migration/vmstate.h"
14e3a575f5SPhilippe Mathieu-Daudé 
15e3a575f5SPhilippe Mathieu-Daudé static const Property cpu_user_props[] = {
16e3a575f5SPhilippe Mathieu-Daudé     /*
17e3a575f5SPhilippe Mathieu-Daudé      * Create a property for the user-only object, so users can
18e3a575f5SPhilippe Mathieu-Daudé      * adjust prctl(PR_SET_UNALIGN) from the command-line.
19e3a575f5SPhilippe Mathieu-Daudé      * Has no effect if the target does not support the feature.
20e3a575f5SPhilippe Mathieu-Daudé      */
21e3a575f5SPhilippe Mathieu-Daudé     DEFINE_PROP_BOOL("prctl-unalign-sigbus", CPUState,
22e3a575f5SPhilippe Mathieu-Daudé                      prctl_unalign_sigbus, false),
23e3a575f5SPhilippe Mathieu-Daudé };
24e3a575f5SPhilippe Mathieu-Daudé 
25e3a575f5SPhilippe Mathieu-Daudé void cpu_class_init_props(DeviceClass *dc)
26e3a575f5SPhilippe Mathieu-Daudé {
27e3a575f5SPhilippe Mathieu-Daudé     device_class_set_props(dc, cpu_user_props);
28e3a575f5SPhilippe Mathieu-Daudé }
29a86cf967SPhilippe Mathieu-Daudé 
30a86cf967SPhilippe Mathieu-Daudé void cpu_exec_initfn(CPUState *cpu)
31a86cf967SPhilippe Mathieu-Daudé {
32a86cf967SPhilippe Mathieu-Daudé     /* nothing to do */
33a86cf967SPhilippe Mathieu-Daudé }
34*ca05578fSPhilippe Mathieu-Daudé 
35*ca05578fSPhilippe Mathieu-Daudé void cpu_vmstate_register(CPUState *cpu)
36*ca05578fSPhilippe Mathieu-Daudé {
37*ca05578fSPhilippe Mathieu-Daudé     assert(qdev_get_vmsd(DEVICE(cpu)) == NULL ||
38*ca05578fSPhilippe Mathieu-Daudé            qdev_get_vmsd(DEVICE(cpu))->unmigratable);
39*ca05578fSPhilippe Mathieu-Daudé }
40*ca05578fSPhilippe Mathieu-Daudé 
41*ca05578fSPhilippe Mathieu-Daudé void cpu_vmstate_unregister(CPUState *cpu)
42*ca05578fSPhilippe Mathieu-Daudé {
43*ca05578fSPhilippe Mathieu-Daudé     /* nothing to do */
44*ca05578fSPhilippe Mathieu-Daudé }
45