Annotation of qemu/qom/container.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Device Container
                      3:  *
                      4:  * Copyright IBM, Corp. 2012
                      5:  *
                      6:  * Authors:
                      7:  *  Anthony Liguori   <[email protected]>
                      8:  *
                      9:  * This work is licensed under the terms of the GNU GPL, version 2 or later.
                     10:  * See the COPYING file in the top-level directory.
                     11:  */
                     12: 
                     13: #include "qemu/object.h"
                     14: #include "module.h"
                     15: #include <assert.h>
                     16: 
                     17: static TypeInfo container_info = {
                     18:     .name          = "container",
                     19:     .instance_size = sizeof(Object),
                     20:     .parent        = TYPE_OBJECT,
                     21: };
                     22: 
                     23: static void container_register_types(void)
                     24: {
                     25:     type_register_static(&container_info);
                     26: }
                     27: 
                     28: Object *container_get(Object *root, const char *path)
                     29: {
                     30:     Object *obj, *child;
                     31:     gchar **parts;
                     32:     int i;
                     33: 
                     34:     parts = g_strsplit(path, "/", 0);
                     35:     assert(parts != NULL && parts[0] != NULL && !parts[0][0]);
                     36:     obj = root;
                     37: 
                     38:     for (i = 1; parts[i] != NULL; i++, obj = child) {
                     39:         child = object_resolve_path_component(obj, parts[i]);
                     40:         if (!child) {
                     41:             child = object_new("container");
                     42:             object_property_add_child(obj, parts[i], child, NULL);
                     43:         }
                     44:     }
                     45: 
                     46:     g_strfreev(parts);
                     47: 
                     48:     return obj;
                     49: }
                     50: 
                     51: 
                     52: type_init(container_register_types)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.