i386: Register most CPU properties as class properties
Class properties make QOM introspection simpler and easier, as they don't require an object to be instantiated. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Message-Id: <20200921221045.699690-14-ehabkost@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
d85855b894
commit
3e0dceaf94
@ -6925,44 +6925,12 @@ static void x86_cpu_initfn(Object *obj)
|
||||
env->nr_dies = 1;
|
||||
cpu_set_cpustate_pointers(cpu);
|
||||
|
||||
object_property_add(obj, "family", "int",
|
||||
x86_cpuid_version_get_family,
|
||||
x86_cpuid_version_set_family, NULL, NULL);
|
||||
object_property_add(obj, "model", "int",
|
||||
x86_cpuid_version_get_model,
|
||||
x86_cpuid_version_set_model, NULL, NULL);
|
||||
object_property_add(obj, "stepping", "int",
|
||||
x86_cpuid_version_get_stepping,
|
||||
x86_cpuid_version_set_stepping, NULL, NULL);
|
||||
object_property_add_str(obj, "vendor",
|
||||
x86_cpuid_get_vendor,
|
||||
x86_cpuid_set_vendor);
|
||||
object_property_add_str(obj, "model-id",
|
||||
x86_cpuid_get_model_id,
|
||||
x86_cpuid_set_model_id);
|
||||
object_property_add(obj, "tsc-frequency", "int",
|
||||
x86_cpuid_get_tsc_freq,
|
||||
x86_cpuid_set_tsc_freq, NULL, NULL);
|
||||
object_property_add(obj, "feature-words", "X86CPUFeatureWordInfo",
|
||||
x86_cpu_get_feature_words,
|
||||
NULL, NULL, (void *)env->features);
|
||||
object_property_add(obj, "filtered-features", "X86CPUFeatureWordInfo",
|
||||
x86_cpu_get_feature_words,
|
||||
NULL, NULL, (void *)cpu->filtered_features);
|
||||
/*
|
||||
* The "unavailable-features" property has the same semantics as
|
||||
* CpuDefinitionInfo.unavailable-features on the "query-cpu-definitions"
|
||||
* QMP command: they list the features that would have prevented the
|
||||
* CPU from running if the "enforce" flag was set.
|
||||
*/
|
||||
object_property_add(obj, "unavailable-features", "strList",
|
||||
x86_cpu_get_unavailable_features,
|
||||
NULL, NULL, NULL);
|
||||
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
object_property_add(obj, "crash-information", "GuestPanicInformation",
|
||||
x86_cpu_get_crash_info_qom, NULL, NULL, NULL);
|
||||
#endif
|
||||
|
||||
for (w = 0; w < FEATURE_WORDS; w++) {
|
||||
int bitnr;
|
||||
@ -7312,6 +7280,40 @@ static void x86_cpu_common_class_init(ObjectClass *oc, void *data)
|
||||
cc->disas_set_info = x86_disas_set_info;
|
||||
|
||||
dc->user_creatable = true;
|
||||
|
||||
object_class_property_add(oc, "family", "int",
|
||||
x86_cpuid_version_get_family,
|
||||
x86_cpuid_version_set_family, NULL, NULL);
|
||||
object_class_property_add(oc, "model", "int",
|
||||
x86_cpuid_version_get_model,
|
||||
x86_cpuid_version_set_model, NULL, NULL);
|
||||
object_class_property_add(oc, "stepping", "int",
|
||||
x86_cpuid_version_get_stepping,
|
||||
x86_cpuid_version_set_stepping, NULL, NULL);
|
||||
object_class_property_add_str(oc, "vendor",
|
||||
x86_cpuid_get_vendor,
|
||||
x86_cpuid_set_vendor);
|
||||
object_class_property_add_str(oc, "model-id",
|
||||
x86_cpuid_get_model_id,
|
||||
x86_cpuid_set_model_id);
|
||||
object_class_property_add(oc, "tsc-frequency", "int",
|
||||
x86_cpuid_get_tsc_freq,
|
||||
x86_cpuid_set_tsc_freq, NULL, NULL);
|
||||
/*
|
||||
* The "unavailable-features" property has the same semantics as
|
||||
* CpuDefinitionInfo.unavailable-features on the "query-cpu-definitions"
|
||||
* QMP command: they list the features that would have prevented the
|
||||
* CPU from running if the "enforce" flag was set.
|
||||
*/
|
||||
object_class_property_add(oc, "unavailable-features", "strList",
|
||||
x86_cpu_get_unavailable_features,
|
||||
NULL, NULL, NULL);
|
||||
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
object_class_property_add(oc, "crash-information", "GuestPanicInformation",
|
||||
x86_cpu_get_crash_info_qom, NULL, NULL, NULL);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
static const TypeInfo x86_cpu_type_info = {
|
||||
|
Loading…
Reference in New Issue
Block a user