target-i386: Replace custom apic-id setter/getter with static property
Custom apic-id setter/getter doesn't do any property specific checks anymore, so clean it up and use more compact static property DEFINE_PROP_UINT32 instead. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
4ec60c76d5
commit
2da00e3176
|
@ -1893,37 +1893,6 @@ static void x86_cpuid_set_tsc_freq(Object *obj, Visitor *v, const char *name,
|
|||
cpu->env.tsc_khz = cpu->env.user_tsc_khz = value / 1000;
|
||||
}
|
||||
|
||||
static void x86_cpuid_get_apic_id(Object *obj, Visitor *v, const char *name,
|
||||
void *opaque, Error **errp)
|
||||
{
|
||||
X86CPU *cpu = X86_CPU(obj);
|
||||
int64_t value = cpu->apic_id;
|
||||
|
||||
visit_type_int(v, name, &value, errp);
|
||||
}
|
||||
|
||||
static void x86_cpuid_set_apic_id(Object *obj, Visitor *v, const char *name,
|
||||
void *opaque, Error **errp)
|
||||
{
|
||||
X86CPU *cpu = X86_CPU(obj);
|
||||
DeviceState *dev = DEVICE(obj);
|
||||
Error *error = NULL;
|
||||
int64_t value;
|
||||
|
||||
if (dev->realized) {
|
||||
error_setg(errp, "Attempt to set property '%s' on '%s' after "
|
||||
"it was realized", name, object_get_typename(obj));
|
||||
return;
|
||||
}
|
||||
|
||||
visit_type_int(v, name, &value, &error);
|
||||
if (error) {
|
||||
error_propagate(errp, error);
|
||||
return;
|
||||
}
|
||||
cpu->apic_id = value;
|
||||
}
|
||||
|
||||
/* Generic getter for "feature-words" and "filtered-features" properties */
|
||||
static void x86_cpu_get_feature_words(Object *obj, Visitor *v,
|
||||
const char *name, void *opaque,
|
||||
|
@ -3278,9 +3247,6 @@ static void x86_cpu_initfn(Object *obj)
|
|||
object_property_add(obj, "tsc-frequency", "int",
|
||||
x86_cpuid_get_tsc_freq,
|
||||
x86_cpuid_set_tsc_freq, NULL, NULL, NULL);
|
||||
object_property_add(obj, "apic-id", "int",
|
||||
x86_cpuid_get_apic_id,
|
||||
x86_cpuid_set_apic_id, NULL, NULL, NULL);
|
||||
object_property_add(obj, "feature-words", "X86CPUFeatureWordInfo",
|
||||
x86_cpu_get_feature_words,
|
||||
NULL, NULL, (void *)env->features, NULL);
|
||||
|
@ -3290,11 +3256,6 @@ static void x86_cpu_initfn(Object *obj)
|
|||
|
||||
cpu->hyperv_spinlock_attempts = HYPERV_SPINLOCK_NEVER_RETRY;
|
||||
|
||||
#ifndef CONFIG_USER_ONLY
|
||||
/* Any code creating new X86CPU objects have to set apic-id explicitly */
|
||||
cpu->apic_id = UNASSIGNED_APIC_ID;
|
||||
#endif
|
||||
|
||||
for (w = 0; w < FEATURE_WORDS; w++) {
|
||||
int bitnr;
|
||||
|
||||
|
@ -3351,6 +3312,12 @@ static bool x86_cpu_has_work(CPUState *cs)
|
|||
}
|
||||
|
||||
static Property x86_cpu_properties[] = {
|
||||
#ifdef CONFIG_USER_ONLY
|
||||
/* apic_id = 0 by default for *-user, see commit 9886e834 */
|
||||
DEFINE_PROP_UINT32("apic-id", X86CPU, apic_id, 0),
|
||||
#else
|
||||
DEFINE_PROP_UINT32("apic-id", X86CPU, apic_id, UNASSIGNED_APIC_ID),
|
||||
#endif
|
||||
DEFINE_PROP_BOOL("pmu", X86CPU, enable_pmu, false),
|
||||
{ .name = "hv-spinlocks", .info = &qdev_prop_spinlocks },
|
||||
DEFINE_PROP_BOOL("hv-relaxed", X86CPU, hyperv_relaxed_timing, false),
|
||||
|
|
Loading…
Reference in a new issue