[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] qom: Refine container_get() to allow using a cu
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PATCH] qom: Refine container_get() to allow using a custom root |
Date: |
Thu, 19 Apr 2012 17:19:56 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120312 Thunderbird/11.0 |
Am 05.04.2012 13:30, schrieb Paolo Bonzini:
> Il 05/04/2012 13:21, Andreas Färber ha scritto:
>> Specify the root to search from as argument. This avoids hardcoding
>> "/machine" in some places and makes it more flexible.
>>
>> Signed-off-by: Andreas Färber <address@hidden>
>> Cc: Paolo Bonzini <address@hidden>
>> Cc: Anthony Liguori <address@hidden>
>
> Looks good, thanks.
Ping! Anthony, can you apply or are you waiting for explicit *-bys?
Andreas
>
> Paolo
>
>> ---
>> hw/qdev-monitor.c | 4 ++--
>> hw/qdev.c | 7 ++++---
>> include/qemu/object.h | 3 ++-
>> qom/container.c | 4 ++--
>> 4 files changed, 10 insertions(+), 8 deletions(-)
>>
>> diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c
>> index 4783366..67f296b 100644
>> --- a/hw/qdev-monitor.c
>> +++ b/hw/qdev-monitor.c
>> @@ -180,7 +180,7 @@ static Object *qdev_get_peripheral(void)
>> static Object *dev;
>>
>> if (dev == NULL) {
>> - dev = container_get("/machine/peripheral");
>> + dev = container_get(qdev_get_machine(), "/peripheral");
>> }
>>
>> return dev;
>> @@ -191,7 +191,7 @@ static Object *qdev_get_peripheral_anon(void)
>> static Object *dev;
>>
>> if (dev == NULL) {
>> - dev = container_get("/machine/peripheral-anon");
>> + dev = container_get(qdev_get_machine(), "/peripheral-anon");
>> }
>>
>> return dev;
>> diff --git a/hw/qdev.c b/hw/qdev.c
>> index 0d3c0fc..efa4c5d 100644
>> --- a/hw/qdev.c
>> +++ b/hw/qdev.c
>> @@ -157,8 +157,9 @@ int qdev_init(DeviceState *dev)
>> static int unattached_count = 0;
>> gchar *name = g_strdup_printf("device[%d]", unattached_count++);
>>
>> - object_property_add_child(container_get("/machine/unattached"),
>> name,
>> - OBJECT(dev), NULL);
>> + object_property_add_child(container_get(qdev_get_machine(),
>> + "/unattached"),
>> + name, OBJECT(dev), NULL);
>> g_free(name);
>> }
>>
>> @@ -673,7 +674,7 @@ Object *qdev_get_machine(void)
>> static Object *dev;
>>
>> if (dev == NULL) {
>> - dev = container_get("/machine");
>> + dev = container_get(object_get_root(), "/machine");
>> }
>>
>> return dev;
>> diff --git a/include/qemu/object.h b/include/qemu/object.h
>> index a675937..ca1649c 100644
>> --- a/include/qemu/object.h
>> +++ b/include/qemu/object.h
>> @@ -905,6 +905,7 @@ void object_property_add_str(Object *obj, const char
>> *name,
>>
>> /**
>> * container_get:
>> + * @root: root of the #path, e.g., object_get_root()
>> * @path: path to the container
>> *
>> * Return a container object whose path is @path. Create more containers
>> @@ -912,7 +913,7 @@ void object_property_add_str(Object *obj, const char
>> *name,
>> *
>> * Returns: the container object.
>> */
>> -Object *container_get(const char *path);
>> +Object *container_get(Object *root, const char *path);
>>
>>
>> #endif
>> diff --git a/qom/container.c b/qom/container.c
>> index 67e9e8a..c9940ab 100644
>> --- a/qom/container.c
>> +++ b/qom/container.c
>> @@ -25,7 +25,7 @@ static void container_register_types(void)
>> type_register_static(&container_info);
>> }
>>
>> -Object *container_get(const char *path)
>> +Object *container_get(Object *root, const char *path)
>> {
>> Object *obj, *child;
>> gchar **parts;
>> @@ -33,7 +33,7 @@ Object *container_get(const char *path)
>>
>> parts = g_strsplit(path, "/", 0);
>> assert(parts != NULL && parts[0] != NULL && !parts[0][0]);
>> - obj = object_get_root();
>> + obj = root;
>>
>> for (i = 1; parts[i] != NULL; i++, obj = child) {
>> child = object_resolve_path_component(obj, parts[i]);
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg