diff mbox

[v2] hw/core/register: Mark the device with cannot_instantiate_with_device_add_yet

Message ID 1485778921-20869-1-git-send-email-thuth@redhat.com
State New
Headers show

Commit Message

Thomas Huth Jan. 30, 2017, 12:22 p.m. UTC
The "qemu,register" device needs to be wired up in source code, there
is no way the user can add this device with the "-device" parameter or
the "device_add" monitor command yet.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 v2: Changed patch description and comment

 hw/core/register.c | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Markus Armbruster Feb. 3, 2017, 9:13 a.m. UTC | #1
Thomas Huth <thuth@redhat.com> writes:

> The "qemu,register" device needs to be wired up in source code, there
> is no way the user can add this device with the "-device" parameter or
> the "device_add" monitor command yet.

Well, the user can (I tried), but it won't do squat then.

> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  v2: Changed patch description and comment
>
>  hw/core/register.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/hw/core/register.c b/hw/core/register.c
> index 4bfbc50..1416691 100644
> --- a/hw/core/register.c
> +++ b/hw/core/register.c
> @@ -274,9 +274,18 @@ void register_finalize_block(RegisterInfoArray *r_array)
>      g_free(r_array);
>  }
>  
> +static void register_class_init(ObjectClass *oc, void *data)
> +{
> +    DeviceClass *dc = DEVICE_CLASS(oc);
> +
> +    /* Needs to be wired up in source code, see register_init_block32() */

Bear with me...  Please phrase this exactly like the similar comments
elsewhere:

       /* Reason: needs to be wired up by register_init_block32() to work */


> +    dc->cannot_instantiate_with_device_add_yet = true;
> +}
> +
>  static const TypeInfo register_info = {
>      .name  = TYPE_REGISTER,
>      .parent = TYPE_DEVICE,
> +    .class_init = register_class_init,
>  };
>  
>  static void register_register_types(void)

With comment and commit message touched up:
Reviewed-by: Markus Armbruster <armbru@redhat.com>
diff mbox

Patch

diff --git a/hw/core/register.c b/hw/core/register.c
index 4bfbc50..1416691 100644
--- a/hw/core/register.c
+++ b/hw/core/register.c
@@ -274,9 +274,18 @@  void register_finalize_block(RegisterInfoArray *r_array)
     g_free(r_array);
 }
 
+static void register_class_init(ObjectClass *oc, void *data)
+{
+    DeviceClass *dc = DEVICE_CLASS(oc);
+
+    /* Needs to be wired up in source code, see register_init_block32() */
+    dc->cannot_instantiate_with_device_add_yet = true;
+}
+
 static const TypeInfo register_info = {
     .name  = TYPE_REGISTER,
     .parent = TYPE_DEVICE,
+    .class_init = register_class_init,
 };
 
 static void register_register_types(void)