qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

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