1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright 2018, Olivier MATZ <zer0@droids-corp.org>
11 #include <ecoli_malloc.h>
12 #include <ecoli_config.h>
13 #include <ecoli_node.h>
14 #include <ecoli_node_helper.h>
17 ec_node_config_node_list_to_table(const struct ec_config *config,
20 struct ec_node **table = NULL;
21 struct ec_config *child;
31 if (ec_config_get_type(config) != EC_CONFIG_TYPE_LIST) {
36 n = ec_config_count(config);
40 table = ec_calloc(n, sizeof(*table));
45 TAILQ_FOREACH(child, &config->list, next) {
46 if (ec_config_get_type(child) != EC_CONFIG_TYPE_NODE) {
50 table[n] = ec_node_clone(child->node);
60 for (i = 0; i < n; i++)
61 ec_node_free(table[i]);
69 ec_node_config_node_list_from_vargs(va_list ap)
71 struct ec_config *list = NULL;
72 struct ec_node *node = va_arg(ap, struct ec_node *);
74 list = ec_config_list();
78 for (; node != EC_NODE_ENDLIST; node = va_arg(ap, struct ec_node *)) {
82 if (ec_config_list_add(list, ec_config_node(node)) < 0)
89 for (; node != EC_NODE_ENDLIST; node = va_arg(ap, struct ec_node *))