From: Igor Mammedov <imammedo@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
"Daniel P. Berrange" <berrange@redhat.com>,
John Snow <jsnow@redhat.com>,
qemu-devel@nongnu.org, Richard Henderson <rth@twiddle.net>
Subject: Re: [PATCH 13/24] i386: Register most CPU properties as class properties
Date: Tue, 22 Sep 2020 08:41:49 +0200 [thread overview]
Message-ID: <20200922084149.706d8cf7@redhat.com> (raw)
In-Reply-To: <20200921221045.699690-14-ehabkost@redhat.com>
On Mon, 21 Sep 2020 18:10:34 -0400
Eduardo Habkost <ehabkost@redhat.com> wrote:
> 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>
> ---
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Richard Henderson <rth@twiddle.net>
> Cc: Eduardo Habkost <ehabkost@redhat.com>
> Cc: qemu-devel@nongnu.org
> ---
> target/i386/cpu.c | 66 ++++++++++++++++++++++++-----------------------
> 1 file changed, 34 insertions(+), 32 deletions(-)
>
> diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> index 1c58f764dcb..66792f28ba7 100644
> --- a/target/i386/cpu.c
> +++ b/target/i386/cpu.c
> @@ -6922,44 +6922,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);
I'm just curious why these weren't moved as well?
> - /*
> - * 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;
> @@ -7308,6 +7276,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 = {
next prev parent reply other threads:[~2020-09-22 6:43 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-21 22:10 [PATCH 00/24] qom: Convert some properties to class properties Eduardo Habkost
2020-09-21 22:10 ` [PATCH 01/24] cryptodev-vhost-user: Register "chardev" as class property Eduardo Habkost
2020-09-22 1:27 ` Gonglei (Arei)
2020-09-21 22:10 ` [PATCH 02/24] cryptodev-backend: " Eduardo Habkost
2020-09-22 1:27 ` Gonglei (Arei)
2020-09-21 22:10 ` [PATCH 03/24] rng-egd: " Eduardo Habkost
2020-09-23 9:59 ` Daniel P. Berrangé
2020-09-21 22:10 ` [PATCH 04/24] rng-random: register "filename" " Eduardo Habkost
2020-09-23 9:59 ` Daniel P. Berrangé
2020-09-21 22:10 ` [PATCH 05/24] vhost-user: Register "chardev" " Eduardo Habkost
2020-10-08 6:58 ` Marc-André Lureau
2020-10-23 18:16 ` Igor Mammedov
2020-10-30 8:56 ` Michael S. Tsirkin
2020-09-21 22:10 ` [PATCH 06/24] vexpress: Register "secure" " Eduardo Habkost
2020-09-21 22:10 ` [PATCH 07/24] rng: Register "opened" " Eduardo Habkost
2020-09-23 10:00 ` Daniel P. Berrangé
2020-09-21 22:10 ` [PATCH 08/24] vexpress-a15: Register "virtualization" " Eduardo Habkost
2020-10-23 18:19 ` Igor Mammedov
2020-09-21 22:10 ` [PATCH 09/24] input-linux: Register properties as class properties Eduardo Habkost
2020-09-23 10:01 ` Daniel P. Berrangé
2020-09-21 22:10 ` [PATCH 10/24] input-barrier: " Eduardo Habkost
2020-09-23 10:02 ` Daniel P. Berrangé
2020-09-21 22:10 ` [PATCH 11/24] tmp421: " Eduardo Habkost
2020-10-23 18:21 ` Igor Mammedov
2020-09-21 22:10 ` [PATCH 12/24] s390x: Register all CPU " Eduardo Habkost
2020-09-22 6:47 ` David Hildenbrand
2020-09-22 9:54 ` Cornelia Huck
2020-09-21 22:10 ` [PATCH 13/24] i386: Register most " Eduardo Habkost
2020-09-22 6:41 ` Igor Mammedov [this message]
2020-09-22 12:44 ` Eduardo Habkost
2020-09-23 8:43 ` Igor Mammedov
2020-09-21 22:10 ` [PATCH 14/24] i386: Register feature bit " Eduardo Habkost
2020-09-22 6:47 ` Igor Mammedov
2020-09-22 12:47 ` Eduardo Habkost
2020-09-21 22:10 ` [PATCH 15/24] arm/virt: Register most " Eduardo Habkost
2020-10-23 18:26 ` Igor Mammedov
2020-09-21 22:10 ` [PATCH 16/24] virt: Register "its" as class property Eduardo Habkost
2020-10-23 18:33 ` Igor Mammedov
2020-11-02 11:12 ` Peter Maydell
2020-09-21 22:10 ` [PATCH 17/24] cpu/core: Register core-id and nr-threads as class properties Eduardo Habkost
2020-09-22 6:48 ` Igor Mammedov
2020-09-21 22:10 ` [PATCH 18/24] arm/cpu64: Register "aarch64" as class property Eduardo Habkost
2020-10-23 18:34 ` Igor Mammedov
2020-09-21 22:10 ` [PATCH 19/24] xlnx-zcu102: Register properties as class properties Eduardo Habkost
2020-09-22 16:44 ` Alistair Francis
2020-09-21 22:10 ` [PATCH 20/24] machine: Register "memory-backend" as class property Eduardo Habkost
2020-09-22 6:39 ` Igor Mammedov
2020-09-21 22:10 ` [PATCH 21/24] vga-pci: Register "big-endian-framebuffer" " Eduardo Habkost
2020-10-08 7:00 ` Marc-André Lureau
2020-09-21 22:10 ` [PATCH 22/24] i440fx: Register i440FX-pcihost properties as class properties Eduardo Habkost
2020-09-22 6:49 ` Igor Mammedov
2020-10-30 8:56 ` Michael S. Tsirkin
2020-09-21 22:10 ` [PATCH 23/24] sifive_e: Register "revb" as class property Eduardo Habkost
2020-09-22 16:45 ` Alistair Francis
2020-09-21 22:10 ` [PATCH 24/24] sifive_u: Register "start-in-flash" " Eduardo Habkost
2020-09-22 16:44 ` Alistair Francis
2020-09-22 1:47 ` [PATCH 00/24] qom: Convert some properties to class properties Li Qiang
2020-09-22 4:31 ` Eduardo Habkost
2020-09-22 3:02 ` no-reply
2020-09-22 21:00 ` Eduardo Habkost
2020-10-07 22:26 ` Eduardo Habkost
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200922084149.706d8cf7@redhat.com \
--to=imammedo@redhat.com \
--cc=berrange@redhat.com \
--cc=ehabkost@redhat.com \
--cc=jsnow@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).