2 * This file is part of the Palacios Virtual Machine Monitor developed
3 * by the V3VEE Project with funding from the United States National
4 * Science Foundation and the Department of Energy.
6 * The V3VEE Project is a joint project between Northwestern University
7 * and the University of New Mexico. You can find out more at
10 * Copyright (c) 2008, Jack Lange <jarusl@cs.northwestern.edu>
11 * Copyright (c) 2008, The V3VEE Project <http://www.v3vee.org>
12 * All rights reserved.
14 * Author: Jack Lange <jarusl@cs.northwestern.edu>
16 * This is free software. You are permitted to use,
17 * redistribute, and modify it as specified in the file "V3VEE_LICENSE".
21 #ifndef __VMM_MULTITREE_H__
22 #define __VMM_MULTITREE_H__
26 #include <palacios/vmm.h>
27 #include <palacios/vmm_types.h>
28 #include <palacios/vmm_rbtree.h>
40 } __attribute__((packed));
41 } __attribute__((packed));
50 } __attribute__((packed));
52 struct rb_node tree_node;
59 struct v3_mtree * v3_mtree_create_node(struct v3_mtree * root, char * name);
60 struct v3_mtree * v3_mtree_create_value(struct v3_mtree * root, char * name,
61 uint64_t size, void * value);
62 struct v3_mtree * v3_mtree_create_subtree(struct v3_mtree * root, char * name);
64 struct v3_mtree * v3_mtree_find_node(struct v3_mtree * root, char * name);
65 struct v3_mtree * v3_mtree_find_subtree(struct v3_mtree * root, char * name);
66 struct v3_mtree * v3_mtree_find_value(struct v3_mtree * root, char * name);
69 struct v3_mtree * v3_mtree_first_child(struct v3_mtree * root);
70 struct v3_mtree * v3_mtree_next_node(struct v3_mtree * node);
72 void v3_mtree_free_tree(struct v3_mtree * root);
73 void v3_mtree_free_node(struct v3_mtree * root, char * name);