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