Shared P4WQ pool for element-level work parallelism.
Elements use the Zephyr P4WQ API directly, k_p4wq_submit() and k_p4wq_wait(), on the shared mpipe_p4wq instance. An element processing tiles in parallel:
}
for (int i = 0; i < 4; i++) {
tile_work[i].handler = tile_handler;
tile_work[i].priority = 7;
tile_work[i].deadline = 0;
tile_work[i].sync = true;
}
for (int i = 0; i < 4; i++) {
}
*out = result;
return 0;
}
#define K_FOREVER
Generate infinite timeout delay.
Definition kernel.h:1712
struct k_p4wq *const mpipe_p4wq
Shared mpipe P4WQ pool instance.
int k_sem_init(struct k_sem *sem, unsigned int initial_count, unsigned int limit)
Initialize a semaphore.
Shared P4WQ pool for element-level work parallelism.
void k_p4wq_submit(struct k_p4wq *queue, struct k_p4wq_work *item)
Submit work item to a P4 queue.
int k_p4wq_wait(struct k_p4wq_work *work, k_timeout_t timeout)
Regain ownership of the work item, wait for completion if it's synchronous.
P4 Queue Work Item.
Definition p4wq.h:36
struct k_sem done_sem
Definition p4wq.h:42
Pad structure.
Definition mpipe_pad.h:128
Network buffer representation.
Definition net_buf.h:1062