X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_multitree.h;h=070ca6926b2e0e9bef6671d5ae88d4b90967710c;hb=e61e0890e6f13b1362cfffdcd287e90f1d41e443;hp=14f15e865730a67599c403069ef1312887b76e91;hpb=374b2d6d22a0e0dc6ed8d3d628e635ab935072e0;p=palacios.git diff --git a/palacios/include/palacios/vmm_multitree.h b/palacios/include/palacios/vmm_multitree.h index 14f15e8..070ca69 100644 --- a/palacios/include/palacios/vmm_multitree.h +++ b/palacios/include/palacios/vmm_multitree.h @@ -28,16 +28,16 @@ #include +#define V3_MTREE_NAME_LEN 50 struct v3_mtree { - char name[50]; - - struct rb_node tree_node; + char name[V3_MTREE_NAME_LEN]; union { uint8_t flags; struct { uint8_t subtree : 1; + uint8_t rsvd : 7; } __attribute__((packed)); } __attribute__((packed)); @@ -50,7 +50,8 @@ struct v3_mtree { void * value; } __attribute__((packed)); -} __attribute__((packed)); + struct rb_node tree_node; +}; @@ -65,11 +66,16 @@ struct v3_mtree * v3_mtree_find_node(struct v3_mtree * root, char * name); struct v3_mtree * v3_mtree_find_subtree(struct v3_mtree * root, char * name); struct v3_mtree * v3_mtree_find_value(struct v3_mtree * root, char * name); + +struct v3_mtree * v3_mtree_first_child(struct v3_mtree * root); +struct v3_mtree * v3_mtree_next_node(struct v3_mtree * node); + void v3_mtree_free_tree(struct v3_mtree * root); void v3_mtree_free_node(struct v3_mtree * root, char * name); + #endif #endif