#pragma once #include /* a single node in the tree of values */ struct value_node { /* our element in the parent list */ struct llist_head list; /* the display name */ const char *name; /* additional numeric index (for ifindex matching) */ int idx; /* the value (if any) */ const char *value; /* the children (if value == NULL) */ struct llist_head children; }; struct value_node *value_node_add(struct value_node *parent, const char *name, const char *value); struct value_node *value_node_find(struct value_node *parent, const char *name); struct value_node *value_node_find_by_idx(struct value_node *parent, int idx); struct value_node *value_node_find_or_add(struct value_node *parent, const char *name); void value_node_del(struct value_node *node);