| 326 | } |
| 327 | |
| 328 | rte_node_t |
| 329 | rte_node_edge_get(rte_node_t id, char *next_nodes[]) |
| 330 | { |
| 331 | rte_node_t rc = RTE_NODE_ID_INVALID; |
| 332 | struct node *node; |
| 333 | |
| 334 | NODE_ID_CHECK(id); |
| 335 | graph_spinlock_lock(); |
| 336 | |
| 337 | STAILQ_FOREACH(node, &node_list, next) { |
| 338 | if (node->id == id) { |
| 339 | if (next_nodes == NULL) |
| 340 | rc = sizeof(char *) * node->nb_edges; |
| 341 | else |
| 342 | rc = node_copy_edges(node, next_nodes); |
| 343 | break; |
| 344 | } |
| 345 | } |
| 346 | |
| 347 | graph_spinlock_unlock(); |
| 348 | fail: |
| 349 | return rc; |
| 350 | } |
| 351 | |
| 352 | static void |
| 353 | node_scan_dump(FILE *f, rte_node_t id, bool all) |