All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/2] vmmouse: convert qdev pointer property to QOM link relationship
@ 2018-02-04  7:28 Zihan Yang
  2018-02-04  7:28 ` [Qemu-devel] [PATCH 1/2] hw/input/pckdb: put TYPE_I8042 into a single header file Zihan Yang
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Zihan Yang @ 2018-02-04  7:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: Zihan Yang

The ps2_mouse property of vmmouse is still pointer type which
is defined by DEFINE_PROP_PTR. But qdev pointer property should
be avoided according to qdev-properties.h. Convert it to 
QOM link relationship.

It involves two patches because it requires the TYPE_I8042
macro which is defined in another file. The first patch put
this macro into a single header file so that the macro can
be used elsewhere. The second patch does the actual work.

Zihan Yang (2):
  hw/input/pckdb: put TYPE_I8042 into a single header file
  vmmouse: change qdev pointer property to qom link

 hw/i386/pc.c      |  2 +-
 hw/i386/vmmouse.c | 19 ++++++++++++-------
 hw/input/pckbd.c  |  2 +-
 hw/input/pckbd.h  |  6 ++++++
 4 files changed, 20 insertions(+), 9 deletions(-)
 create mode 100644 hw/input/pckbd.h

-- 
2.7.4

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Qemu-devel] [PATCH 1/2] hw/input/pckdb: put TYPE_I8042 into a single header file
  2018-02-04  7:28 [Qemu-devel] [PATCH 0/2] vmmouse: convert qdev pointer property to QOM link relationship Zihan Yang
@ 2018-02-04  7:28 ` Zihan Yang
  2018-02-04  7:28 ` [Qemu-devel] [PATCH 2/2] vmmouse: change qdev pointer property to qom link Zihan Yang
  2018-03-07 16:55 ` [Qemu-devel] [PATCH 0/2] vmmouse: convert qdev pointer property to QOM link relationship Zihan Yang
  2 siblings, 0 replies; 6+ messages in thread
From: Zihan Yang @ 2018-02-04  7:28 UTC (permalink / raw)
  To: qemu-devel; +Cc: Zihan Yang, Michael S. Tsirkin, Paolo Bonzini

This allows the macro to be used elsewhere, for example,
when adding link property to vmmouse object.

Signed-off-by: Zihan Yang <whois.zihan.yang@gmail.com>
---
 hw/input/pckbd.c | 2 +-
 hw/input/pckbd.h | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)
 create mode 100644 hw/input/pckbd.h

diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c
index c479f82..d517938 100644
--- a/hw/input/pckbd.c
+++ b/hw/input/pckbd.c
@@ -27,6 +27,7 @@
 #include "hw/i386/pc.h"
 #include "hw/input/ps2.h"
 #include "sysemu/sysemu.h"
+#include "pckbd.h"
 
 /* debug PC keyboard */
 //#define DEBUG_KBD
@@ -480,7 +481,6 @@ void i8042_mm_init(qemu_irq kbd_irq, qemu_irq mouse_irq,
     qemu_register_reset(kbd_reset, s);
 }
 
-#define TYPE_I8042 "i8042"
 #define I8042(obj) OBJECT_CHECK(ISAKBDState, (obj), TYPE_I8042)
 
 typedef struct ISAKBDState {
diff --git a/hw/input/pckbd.h b/hw/input/pckbd.h
new file mode 100644
index 0000000..9cacd0a
--- /dev/null
+++ b/hw/input/pckbd.h
@@ -0,0 +1,6 @@
+#ifndef QEMU_PCKCD_H
+#define QEMU_PCKCD_H
+
+#define TYPE_I8042 "i8042"
+
+#endif
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Qemu-devel] [PATCH 2/2] vmmouse: change qdev pointer property to qom link
  2018-02-04  7:28 [Qemu-devel] [PATCH 0/2] vmmouse: convert qdev pointer property to QOM link relationship Zihan Yang
  2018-02-04  7:28 ` [Qemu-devel] [PATCH 1/2] hw/input/pckdb: put TYPE_I8042 into a single header file Zihan Yang
@ 2018-02-04  7:28 ` Zihan Yang
  2018-03-07 16:55 ` [Qemu-devel] [PATCH 0/2] vmmouse: convert qdev pointer property to QOM link relationship Zihan Yang
  2 siblings, 0 replies; 6+ messages in thread
From: Zihan Yang @ 2018-02-04  7:28 UTC (permalink / raw)
  To: qemu-devel
  Cc: Zihan Yang, Paolo Bonzini, Richard Henderson, Eduardo Habkost,
	Michael S. Tsirkin, Marcel Apfelbaum

The ps2_mouse property of vmmouse is still pointer type which
is defined by DEFINE_PROP_PTR. But qdev pointer property should
be avoided. Convert it into QOM link relationship

Signed-off-by: Zihan Yang <whois.zihan.yang@gmail.com>
---
 hw/i386/pc.c      |  2 +-
 hw/i386/vmmouse.c | 19 ++++++++++++-------
 2 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index ccc50ba..63f49b2 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1598,7 +1598,7 @@ void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi,
     }
     if (vmmouse) {
         DeviceState *dev = DEVICE(vmmouse);
-        qdev_prop_set_ptr(dev, "ps2_mouse", i8042);
+        object_property_set_link(OBJECT(dev), OBJECT(i8042), "ps2_mouse", NULL);
         qdev_init_nofail(dev);
     }
     port92 = isa_create_simple(isa_bus, "port92");
diff --git a/hw/i386/vmmouse.c b/hw/i386/vmmouse.c
index 65ef553..49d4170 100644
--- a/hw/i386/vmmouse.c
+++ b/hw/i386/vmmouse.c
@@ -26,6 +26,8 @@
 #include "ui/console.h"
 #include "hw/i386/pc.h"
 #include "hw/qdev.h"
+#include "hw/input/pckbd.h"
+#include "qapi/error.h"
 
 /* debug only vmmouse */
 //#define DEBUG_VMMOUSE
@@ -271,10 +273,15 @@ static void vmmouse_realizefn(DeviceState *dev, Error **errp)
     vmport_register(VMMOUSE_DATA, vmmouse_ioport_read, s);
 }
 
-static Property vmmouse_properties[] = {
-    DEFINE_PROP_PTR("ps2_mouse", VMMouseState, ps2_mouse),
-    DEFINE_PROP_END_OF_LIST(),
-};
+static void vmmouse_initfn(Object *obj)
+{
+    VMMouseState *s = VMMOUSE(obj);
+
+    object_property_add_link(obj, "ps2_mouse", TYPE_I8042,
+                             (Object **)&s->ps2_mouse,
+                             qdev_prop_allow_set_link_before_realize,
+                             0, &error_abort);
+}
 
 static void vmmouse_class_initfn(ObjectClass *klass, void *data)
 {
@@ -283,15 +290,13 @@ static void vmmouse_class_initfn(ObjectClass *klass, void *data)
     dc->realize = vmmouse_realizefn;
     dc->reset = vmmouse_reset;
     dc->vmsd = &vmstate_vmmouse;
-    dc->props = vmmouse_properties;
-    /* Reason: pointer property "ps2_mouse" */
-    dc->user_creatable = false;
 }
 
 static const TypeInfo vmmouse_info = {
     .name          = TYPE_VMMOUSE,
     .parent        = TYPE_ISA_DEVICE,
     .instance_size = sizeof(VMMouseState),
+    .instance_init = vmmouse_initfn,
     .class_init    = vmmouse_class_initfn,
 };
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH 0/2] vmmouse: convert qdev pointer property to QOM link relationship
  2018-02-04  7:28 [Qemu-devel] [PATCH 0/2] vmmouse: convert qdev pointer property to QOM link relationship Zihan Yang
  2018-02-04  7:28 ` [Qemu-devel] [PATCH 1/2] hw/input/pckdb: put TYPE_I8042 into a single header file Zihan Yang
  2018-02-04  7:28 ` [Qemu-devel] [PATCH 2/2] vmmouse: change qdev pointer property to qom link Zihan Yang
@ 2018-03-07 16:55 ` Zihan Yang
  2018-03-07 20:27   ` Philippe Mathieu-Daudé
  2 siblings, 1 reply; 6+ messages in thread
From: Zihan Yang @ 2018-03-07 16:55 UTC (permalink / raw)
  To: qemu-devel

 Hi all, this is a bitesized patch from me a while ago, it seems a little
old but I wonder if there is any opinion about it? Is it still valid?

Thanks.

2018-02-04 15:28 GMT+08:00 Zihan Yang <whois.zihan.yang@gmail.com>:

> The ps2_mouse property of vmmouse is still pointer type which
> is defined by DEFINE_PROP_PTR. But qdev pointer property should
> be avoided according to qdev-properties.h. Convert it to
> QOM link relationship.
>
> It involves two patches because it requires the TYPE_I8042
> macro which is defined in another file. The first patch put
> this macro into a single header file so that the macro can
> be used elsewhere. The second patch does the actual work.
>
> Zihan Yang (2):
>   hw/input/pckdb: put TYPE_I8042 into a single header file
>   vmmouse: change qdev pointer property to qom link
>
>  hw/i386/pc.c      |  2 +-
>  hw/i386/vmmouse.c | 19 ++++++++++++-------
>  hw/input/pckbd.c  |  2 +-
>  hw/input/pckbd.h  |  6 ++++++
>  4 files changed, 20 insertions(+), 9 deletions(-)
>  create mode 100644 hw/input/pckbd.h
>
> --
> 2.7.4
>
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH 0/2] vmmouse: convert qdev pointer property to QOM link relationship
  2018-03-07 16:55 ` [Qemu-devel] [PATCH 0/2] vmmouse: convert qdev pointer property to QOM link relationship Zihan Yang
@ 2018-03-07 20:27   ` Philippe Mathieu-Daudé
  2018-03-08  0:31     ` Zihan Yang
  0 siblings, 1 reply; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-03-07 20:27 UTC (permalink / raw)
  To: Zihan Yang, qemu-devel

Hi Zihan Yang,

On 03/07/2018 01:55 PM, Zihan Yang wrote:
>  Hi all, this is a bitesized patch from me a while ago, it seems a little
> old but I wonder if there is any opinion about it? Is it still valid?

For a single TYPE use, I'm not sure use a specific header is useful
(patch #1).
The 2nd patch looks valid to me but I'm not a QOM link expert.

> 
> Thanks.
> 
> 2018-02-04 15:28 GMT+08:00 Zihan Yang <whois.zihan.yang@gmail.com>:
> 
>> The ps2_mouse property of vmmouse is still pointer type which
>> is defined by DEFINE_PROP_PTR. But qdev pointer property should
>> be avoided according to qdev-properties.h. Convert it to
>> QOM link relationship.
>>
>> It involves two patches because it requires the TYPE_I8042
>> macro which is defined in another file. The first patch put
>> this macro into a single header file so that the macro can
>> be used elsewhere. The second patch does the actual work.
>>
>> Zihan Yang (2):
>>   hw/input/pckdb: put TYPE_I8042 into a single header file
>>   vmmouse: change qdev pointer property to qom link
>>
>>  hw/i386/pc.c      |  2 +-
>>  hw/i386/vmmouse.c | 19 ++++++++++++-------
>>  hw/input/pckbd.c  |  2 +-
>>  hw/input/pckbd.h  |  6 ++++++
>>  4 files changed, 20 insertions(+), 9 deletions(-)
>>  create mode 100644 hw/input/pckbd.h
>>
>> --
>> 2.7.4
>>
>>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PATCH 0/2] vmmouse: convert qdev pointer property to QOM link relationship
  2018-03-07 20:27   ` Philippe Mathieu-Daudé
@ 2018-03-08  0:31     ` Zihan Yang
  0 siblings, 0 replies; 6+ messages in thread
From: Zihan Yang @ 2018-03-08  0:31 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé; +Cc: qemu-devel

 Hi Philippe,

Thanks for reviewing my patch. Yes I though about it, a specific header file
with only several lines seems not worth it, but otherwise I would have to
define redundant macro in vmmouse.c. Currently rebundant macro is ok
but if we need some more macros, we would end on creating a specific
header at last, although I'm not sure whether we will really need more
macros in the future.

P.S. I forgot to cc to qemu-devel, so I resend one. I apologize if two
identical
emails look confusing to you.

2018-03-08 4:27 GMT+08:00 Philippe Mathieu-Daudé <f4bug@amsat.org>:

> Hi Zihan Yang,
>
> On 03/07/2018 01:55 PM, Zihan Yang wrote:
> >  Hi all, this is a bitesized patch from me a while ago, it seems a little
> > old but I wonder if there is any opinion about it? Is it still valid?
>
> For a single TYPE use, I'm not sure use a specific header is useful
> (patch #1).
> The 2nd patch looks valid to me but I'm not a QOM link expert.
>
> >
> > Thanks.
> >
> > 2018-02-04 15:28 GMT+08:00 Zihan Yang <whois.zihan.yang@gmail.com>:
> >
> >> The ps2_mouse property of vmmouse is still pointer type which
> >> is defined by DEFINE_PROP_PTR. But qdev pointer property should
> >> be avoided according to qdev-properties.h. Convert it to
> >> QOM link relationship.
> >>
> >> It involves two patches because it requires the TYPE_I8042
> >> macro which is defined in another file. The first patch put
> >> this macro into a single header file so that the macro can
> >> be used elsewhere. The second patch does the actual work.
> >>
> >> Zihan Yang (2):
> >>   hw/input/pckdb: put TYPE_I8042 into a single header file
> >>   vmmouse: change qdev pointer property to qom link
> >>
> >>  hw/i386/pc.c      |  2 +-
> >>  hw/i386/vmmouse.c | 19 ++++++++++++-------
> >>  hw/input/pckbd.c  |  2 +-
> >>  hw/input/pckbd.h  |  6 ++++++
> >>  4 files changed, 20 insertions(+), 9 deletions(-)
> >>  create mode 100644 hw/input/pckbd.h
> >>
> >> --
> >> 2.7.4
> >>
> >>
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-03-08  0:31 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-04  7:28 [Qemu-devel] [PATCH 0/2] vmmouse: convert qdev pointer property to QOM link relationship Zihan Yang
2018-02-04  7:28 ` [Qemu-devel] [PATCH 1/2] hw/input/pckdb: put TYPE_I8042 into a single header file Zihan Yang
2018-02-04  7:28 ` [Qemu-devel] [PATCH 2/2] vmmouse: change qdev pointer property to qom link Zihan Yang
2018-03-07 16:55 ` [Qemu-devel] [PATCH 0/2] vmmouse: convert qdev pointer property to QOM link relationship Zihan Yang
2018-03-07 20:27   ` Philippe Mathieu-Daudé
2018-03-08  0:31     ` Zihan Yang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.