Lines Matching refs:node
28 struct node *
31 struct node *node; in node_from_name() local
33 STAILQ_FOREACH(node, &node_list, next) in node_from_name()
34 if (strncmp(node->name, name, RTE_NODE_NAMESIZE) == 0) in node_from_name()
35 return node; in node_from_name()
43 struct node *node; in node_has_duplicate_entry() local
46 STAILQ_FOREACH(node, &node_list, next) { in node_has_duplicate_entry()
47 if (strncmp(node->name, name, RTE_NODE_NAMESIZE) == 0) { in node_has_duplicate_entry()
59 struct node *node; in __rte_node_register() local
80 sz = sizeof(struct node) + (reg->nb_edges * RTE_NODE_NAMESIZE); in __rte_node_register()
81 node = calloc(1, sz); in __rte_node_register()
82 if (node == NULL) { in __rte_node_register()
88 if (rte_strscpy(node->name, reg->name, RTE_NODE_NAMESIZE) < 0) in __rte_node_register()
90 node->flags = reg->flags; in __rte_node_register()
91 node->process = reg->process; in __rte_node_register()
92 node->init = reg->init; in __rte_node_register()
93 node->fini = reg->fini; in __rte_node_register()
94 node->nb_edges = reg->nb_edges; in __rte_node_register()
95 node->parent_id = reg->parent_id; in __rte_node_register()
97 if (rte_strscpy(node->next_nodes[i], reg->next_nodes[i], in __rte_node_register()
102 node->id = node_id++; in __rte_node_register()
105 STAILQ_INSERT_TAIL(&node_list, node, next); in __rte_node_register()
108 return node->id; in __rte_node_register()
110 free(node); in __rte_node_register()
117 clone_name(struct rte_node_register *reg, struct node *node, const char *name) in clone_name() argument
122 rc = rte_strscpy(reg->name, node->name, SZ); in clone_name()
141 node_clone(struct node *node, const char *name) in node_clone() argument
148 if (node->parent_id != RTE_NODE_ID_INVALID) { in node_clone()
153 reg = calloc(1, sizeof(*reg) + (sizeof(char *) * node->nb_edges)); in node_clone()
160 reg->flags = node->flags; in node_clone()
161 reg->process = node->process; in node_clone()
162 reg->init = node->init; in node_clone()
163 reg->fini = node->fini; in node_clone()
164 reg->nb_edges = node->nb_edges; in node_clone()
165 reg->parent_id = node->id; in node_clone()
167 for (i = 0; i < node->nb_edges; i++) in node_clone()
168 reg->next_nodes[i] = node->next_nodes[i]; in node_clone()
171 if (clone_name(reg, node, name)) in node_clone()
184 struct node *node; in rte_node_clone() local
187 STAILQ_FOREACH(node, &node_list, next) in rte_node_clone()
188 if (node->id == id) in rte_node_clone()
189 return node_clone(node, name); in rte_node_clone()
198 struct node *node; in rte_node_from_name() local
200 STAILQ_FOREACH(node, &node_list, next) in rte_node_from_name()
201 if (strncmp(node->name, name, RTE_NODE_NAMESIZE) == 0) in rte_node_from_name()
202 return node->id; in rte_node_from_name()
210 struct node *node; in rte_node_id_to_name() local
213 STAILQ_FOREACH(node, &node_list, next) in rte_node_id_to_name()
214 if (node->id == id) in rte_node_id_to_name()
215 return node->name; in rte_node_id_to_name()
224 struct node *node; in rte_node_edge_count() local
227 STAILQ_FOREACH(node, &node_list, next) in rte_node_edge_count()
228 if (node->id == id) in rte_node_edge_count()
229 return node->nb_edges; in rte_node_edge_count()
235 edge_update(struct node *node, struct node *prev, rte_edge_t from, in edge_update() argument
239 struct node *new_node; in edge_update()
244 from = node->nb_edges; in edge_update()
247 if (from > node->nb_edges) { in edge_update()
253 STAILQ_REMOVE(&node_list, node, node, next); in edge_update()
257 need_realloc = max_edges > node->nb_edges; in edge_update()
259 sz = sizeof(struct node) + (max_edges * RTE_NODE_NAMESIZE); in edge_update()
260 new_node = realloc(node, sz); in edge_update()
265 node = new_node; in edge_update()
271 if (rte_strscpy(node->next_nodes[i], next_nodes[count], in edge_update()
278 STAILQ_INSERT_AFTER(&node_list, prev, node, next); in edge_update()
280 STAILQ_INSERT_HEAD(&node_list, node, next); in edge_update()
283 node->nb_edges = max_edges; in edge_update()
293 struct node *node; in rte_node_edge_shrink() local
298 STAILQ_FOREACH(node, &node_list, next) { in rte_node_edge_shrink()
299 if (node->id == id) { in rte_node_edge_shrink()
300 if (node->nb_edges < size) { in rte_node_edge_shrink()
304 node->nb_edges = size; in rte_node_edge_shrink()
320 struct node *n, *prev; in rte_node_edge_update()
340 node_copy_edges(struct node *node, char *next_nodes[]) in node_copy_edges() argument
344 for (i = 0; i < node->nb_edges; i++) in node_copy_edges()
345 next_nodes[i] = node->next_nodes[i]; in node_copy_edges()
354 struct node *node; in rte_node_edge_get() local
359 STAILQ_FOREACH(node, &node_list, next) { in rte_node_edge_get()
360 if (node->id == id) { in rte_node_edge_get()
362 rc = sizeof(char *) * node->nb_edges; in rte_node_edge_get()
364 rc = node_copy_edges(node, next_nodes); in rte_node_edge_get()
377 struct node *node; in node_scan_dump() local
382 STAILQ_FOREACH(node, &node_list, next) { in node_scan_dump()
384 node_dump(f, node); in node_scan_dump()
385 } else if (node->id == id) { in node_scan_dump()
386 node_dump(f, node); in node_scan_dump()