qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v2 2/3] qom: add AliasProperty struct poniter for al


From: arei.gonglei
Subject: [Qemu-devel] [PATCH v2 2/3] qom: add AliasProperty struct poniter for alias property in ObjectProperty
Date: Tue, 16 Sep 2014 13:51:19 +0800

From: Gonglei <address@hidden>

In this way, we can use target object and get its qdev
property legacy_name etc.

Cc: Stefan Hajnoczi <address@hidden>
Cc: Paolo Bonzini <address@hidden>
Cc: Michael S. Tsirkin <address@hidden>
Signed-off-by: Gonglei <address@hidden>
---
 include/qom/object.h | 8 ++++++++
 qom/object.c         | 7 ++-----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/include/qom/object.h b/include/qom/object.h
index 8a05a81..e3bb52e 100644
--- a/include/qom/object.h
+++ b/include/qom/object.h
@@ -334,6 +334,11 @@ typedef void (ObjectPropertyRelease)(Object *obj,
                                      const char *name,
                                      void *opaque);
 
+typedef struct {
+    Object *target_obj;
+    const char *target_name;
+} AliasProperty;
+
 typedef struct ObjectProperty
 {
     gchar *name;
@@ -344,6 +349,9 @@ typedef struct ObjectProperty
     ObjectPropertyRelease *release;
     void *opaque;
 
+    bool is_alias;
+    AliasProperty *alias_property;
+
     QTAILQ_ENTRY(ObjectProperty) node;
 } ObjectProperty;
 
diff --git a/qom/object.c b/qom/object.c
index a8c3065..9a0dd2e 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -1590,11 +1590,6 @@ void object_property_add_uint64_ptr(Object *obj, const 
char *name,
                         NULL, NULL, (void *)v, errp);
 }
 
-typedef struct {
-    Object *target_obj;
-    const char *target_name;
-} AliasProperty;
-
 static void property_get_alias(Object *obj, struct Visitor *v, void *opaque,
                                const char *name, Error **errp)
 {
@@ -1663,6 +1658,8 @@ void object_property_add_alias(Object *obj, const char 
*name,
         goto out;
     }
     op->resolve = property_resolve_alias;
+    op->is_alias = true;
+    op->alias_property = prop;
 
 out:
     g_free(prop_type);
-- 
1.7.12.4





reply via email to

[Prev in Thread] Current Thread [Next in Thread]