Lines Matching refs:node
29 struct node *
32 struct node *node; in node_from_name() local
34 STAILQ_FOREACH(node, &node_list, next) in node_from_name()
35 if (strncmp(node->name, name, RTE_NODE_NAMESIZE) == 0) in node_from_name()
36 return node; in node_from_name()
44 struct node *node; in node_has_duplicate_entry() local
47 STAILQ_FOREACH(node, &node_list, next) { in node_has_duplicate_entry()
48 if (strncmp(node->name, name, RTE_NODE_NAMESIZE) == 0) { in node_has_duplicate_entry()
60 struct node *node; in __rte_node_register() local
81 sz = sizeof(struct node) + (reg->nb_edges * RTE_NODE_NAMESIZE); in __rte_node_register()
82 node = calloc(1, sz); in __rte_node_register()
83 if (node == NULL) { in __rte_node_register()
89 if (rte_strscpy(node->name, reg->name, RTE_NODE_NAMESIZE) < 0) { in __rte_node_register()
93 node->flags = reg->flags; in __rte_node_register()
94 node->process = reg->process; in __rte_node_register()
95 node->init = reg->init; in __rte_node_register()
96 node->fini = reg->fini; in __rte_node_register()
97 node->nb_edges = reg->nb_edges; in __rte_node_register()
98 node->parent_id = reg->parent_id; in __rte_node_register()
100 if (rte_strscpy(node->next_nodes[i], reg->next_nodes[i], in __rte_node_register()
107 node->id = node_id++; in __rte_node_register()
110 STAILQ_INSERT_TAIL(&node_list, node, next); in __rte_node_register()
113 return node->id; in __rte_node_register()
115 free(node); in __rte_node_register()
122 clone_name(struct rte_node_register *reg, struct node *node, const char *name) in clone_name() argument
127 rc = rte_strscpy(reg->name, node->name, SZ); in clone_name()
146 node_clone(struct node *node, const char *name) in node_clone() argument
153 if (node->parent_id != RTE_NODE_ID_INVALID) { in node_clone()
162 reg = calloc(1, sizeof(*reg) + (sizeof(char *) * node->nb_edges)); in node_clone()
169 reg->flags = node->flags; in node_clone()
170 reg->process = node->process; in node_clone()
171 reg->init = node->init; in node_clone()
172 reg->fini = node->fini; in node_clone()
173 reg->nb_edges = node->nb_edges; in node_clone()
174 reg->parent_id = node->id; in node_clone()
176 for (i = 0; i < node->nb_edges; i++) in node_clone()
177 reg->next_nodes[i] = node->next_nodes[i]; in node_clone()
180 if (clone_name(reg, node, name)) in node_clone()
193 struct node *node; in rte_node_clone() local
196 STAILQ_FOREACH(node, &node_list, next) in rte_node_clone()
197 if (node->id == id) in rte_node_clone()
198 return node_clone(node, name); in rte_node_clone()
207 struct node *node; in rte_node_from_name() local
209 STAILQ_FOREACH(node, &node_list, next) in rte_node_from_name()
210 if (strncmp(node->name, name, RTE_NODE_NAMESIZE) == 0) in rte_node_from_name()
211 return node->id; in rte_node_from_name()
219 struct node *node; in rte_node_id_to_name() local
222 STAILQ_FOREACH(node, &node_list, next) in rte_node_id_to_name()
223 if (node->id == id) in rte_node_id_to_name()
224 return node->name; in rte_node_id_to_name()
233 struct node *node; in rte_node_edge_count() local
236 STAILQ_FOREACH(node, &node_list, next) in rte_node_edge_count()
237 if (node->id == id) in rte_node_edge_count()
238 return node->nb_edges; in rte_node_edge_count()
244 edge_update(struct node *node, struct node *prev, rte_edge_t from, in edge_update() argument
248 struct node *new_node; in edge_update()
253 from = node->nb_edges; in edge_update()
256 if (from > node->nb_edges) { in edge_update()
262 STAILQ_REMOVE(&node_list, node, node, next); in edge_update()
266 need_realloc = max_edges > node->nb_edges; in edge_update()
268 sz = sizeof(struct node) + (max_edges * RTE_NODE_NAMESIZE); in edge_update()
269 new_node = realloc(node, sz); in edge_update()
274 node = new_node; in edge_update()
280 if (rte_strscpy(node->next_nodes[i], next_nodes[count], in edge_update()
289 STAILQ_INSERT_AFTER(&node_list, prev, node, next); in edge_update()
291 STAILQ_INSERT_HEAD(&node_list, node, next); in edge_update()
294 node->nb_edges = max_edges; in edge_update()
304 struct node *node; in rte_node_edge_shrink() local
309 STAILQ_FOREACH(node, &node_list, next) { in rte_node_edge_shrink()
310 if (node->id == id) { in rte_node_edge_shrink()
311 if (node->nb_edges < size) { in rte_node_edge_shrink()
315 node->nb_edges = size; in rte_node_edge_shrink()
331 struct node *n, *prev; in rte_node_edge_update()
351 node_copy_edges(struct node *node, char *next_nodes[]) in node_copy_edges() argument
355 for (i = 0; i < node->nb_edges; i++) in node_copy_edges()
356 next_nodes[i] = node->next_nodes[i]; in node_copy_edges()
365 struct node *node; in rte_node_edge_get() local
370 STAILQ_FOREACH(node, &node_list, next) { in rte_node_edge_get()
371 if (node->id == id) { in rte_node_edge_get()
373 rc = sizeof(char *) * node->nb_edges; in rte_node_edge_get()
375 rc = node_copy_edges(node, next_nodes); in rte_node_edge_get()
388 struct node *node; in node_scan_dump() local
393 STAILQ_FOREACH(node, &node_list, next) { in node_scan_dump()
395 node_dump(f, node); in node_scan_dump()
396 } else if (node->id == id) { in node_scan_dump()
397 node_dump(f, node); in node_scan_dump()