The get/set pair and the struct will be reused by qdev link prop, make them public.
Signed-off-by: Fam Zheng <f...@redhat.com> --- include/qom/link-property.h | 31 +++++++++++++++++++++++++++++++ qom/object.c | 19 +++++++------------ 2 files changed, 38 insertions(+), 12 deletions(-) create mode 100644 include/qom/link-property.h diff --git a/include/qom/link-property.h b/include/qom/link-property.h new file mode 100644 index 0000000..f3c3816 --- /dev/null +++ b/include/qom/link-property.h @@ -0,0 +1,31 @@ +/* + * QOM link property + * + * Copyright IBM, Corp. 2011 + * + * Authors: + * Anthony Liguori <aligu...@us.ibm.com> + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + * + */ + +#ifndef QOM_LINK_PROPERTY_H +#define QOM_LINK_PROPERTY_H + +#include "qom/object.h" + +typedef struct { + Object **child; + void (*check)(Object *, const char *, Object *, Error **); + ObjectPropertyLinkFlags flags; +} LinkProperty; + +void object_get_link_property(Object *obj, Visitor *v, + const char *name, void *opaque, + Error **errp); +void object_set_link_property(Object *obj, Visitor *v, + const char *name, void *opaque, + Error **errp); +#endif diff --git a/qom/object.c b/qom/object.c index 5f6fdfa..fdb8f0d 100644 --- a/qom/object.c +++ b/qom/object.c @@ -28,6 +28,7 @@ #include "qapi/qmp/qobject.h" #include "qapi/qmp/qbool.h" #include "qapi/qmp/qstring.h" +#include "qom/link-property.h" #define MAX_INTERFACES 32 @@ -1434,15 +1435,9 @@ void object_property_allow_set_link(Object *obj, const char *name, /* Allow the link to be set, always */ } -typedef struct { - Object **child; - void (*check)(Object *, const char *, Object *, Error **); - ObjectPropertyLinkFlags flags; -} LinkProperty; - -static void object_get_link_property(Object *obj, Visitor *v, - const char *name, void *opaque, - Error **errp) +void object_get_link_property(Object *obj, Visitor *v, + const char *name, void *opaque, + Error **errp) { LinkProperty *lprop = opaque; Object **child = lprop->child; @@ -1498,9 +1493,9 @@ static Object *object_resolve_link(Object *obj, const char *name, return target; } -static void object_set_link_property(Object *obj, Visitor *v, - const char *name, void *opaque, - Error **errp) +void object_set_link_property(Object *obj, Visitor *v, + const char *name, void *opaque, + Error **errp) { Error *local_err = NULL; LinkProperty *prop = opaque; -- 2.9.4