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" 13ca05578fSPhilippe 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é cpu_class_init_props(DeviceClass * dc)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é cpu_exec_class_post_init(CPUClass * cc)30*d0a4ccaeSPhilippe Mathieu-Daudévoid cpu_exec_class_post_init(CPUClass *cc) 31*d0a4ccaeSPhilippe Mathieu-Daudé { 32*d0a4ccaeSPhilippe Mathieu-Daudé /* nothing to do */ 33*d0a4ccaeSPhilippe Mathieu-Daudé } 34*d0a4ccaeSPhilippe Mathieu-Daudé cpu_exec_initfn(CPUState * cpu)35a86cf967SPhilippe Mathieu-Daudévoid cpu_exec_initfn(CPUState *cpu) 36a86cf967SPhilippe Mathieu-Daudé { 37a86cf967SPhilippe Mathieu-Daudé /* nothing to do */ 38a86cf967SPhilippe Mathieu-Daudé } 39ca05578fSPhilippe Mathieu-Daudé cpu_vmstate_register(CPUState * cpu)40ca05578fSPhilippe Mathieu-Daudévoid cpu_vmstate_register(CPUState *cpu) 41ca05578fSPhilippe Mathieu-Daudé { 42ca05578fSPhilippe Mathieu-Daudé assert(qdev_get_vmsd(DEVICE(cpu)) == NULL || 43ca05578fSPhilippe Mathieu-Daudé qdev_get_vmsd(DEVICE(cpu))->unmigratable); 44ca05578fSPhilippe Mathieu-Daudé } 45ca05578fSPhilippe Mathieu-Daudé cpu_vmstate_unregister(CPUState * cpu)46ca05578fSPhilippe Mathieu-Daudévoid cpu_vmstate_unregister(CPUState *cpu) 47ca05578fSPhilippe Mathieu-Daudé { 48ca05578fSPhilippe Mathieu-Daudé /* nothing to do */ 49ca05578fSPhilippe Mathieu-Daudé } 50