* Enqueue the objs to next node for further processing and set * the next node to pending state in the circular buffer. * * @param graph * Graph pointer returned from rte_graph_lookup(). * @param node * Current node pointer. * @param next * Relative next node index to enqueue objs. * @param objs * Objs to enqueue. * @param nb_objs * Number of objs to enqueue. */
| 283 | * Number of objs to enqueue. |
| 284 | */ |
| 285 | static inline void |
| 286 | rte_node_enqueue(struct rte_graph *graph, struct rte_node *node, |
| 287 | rte_edge_t next, void **objs, uint16_t nb_objs) |
| 288 | { |
| 289 | node = __rte_node_next_node_get(node, next); |
| 290 | const uint16_t idx = node->idx; |
| 291 | |
| 292 | __rte_node_enqueue_prologue(graph, node, idx, nb_objs); |
| 293 | |
| 294 | rte_memcpy(&node->objs[idx], objs, nb_objs * sizeof(void *)); |
| 295 | node->idx = idx + nb_objs; |
| 296 | } |
| 297 | |
| 298 | /** |
| 299 | * Enqueue only one obj to next node for further processing and |