24 config_setting_t *param;
34typedef int (*work_fn_t)(uintptr_t data,
odp_event_t ev[],
int num, work_stats_t *stats);
41typedef void (*work_init_fn_t)(
const work_param_t *param, work_init_t *init);
42typedef void (*work_print_fn_t)(
const char *queue,
const work_stats_t *stats);
43typedef void (*work_destroy_fn_t)(uintptr_t data);
45work_t work_create_work(
const work_param_t *param);
47int work_issue(work_t work,
odp_event_t ev[],
int num);
49void work_register_work(
const char *name, work_init_fn_t init_fn, work_print_fn_t print_fn,
50 work_destroy_fn_t destroy_fn);
52void work_print_work(work_t work,
const char *queue);
54void work_destroy_work(work_t work);
56#define WORK_AUTOREGISTER(name, init, print, destroy) \
57 __attribute__((constructor)) \
58 static void CONCAT(autoregister, __LINE__)(void) { \
59 work_register_work(name, init, print, destroy); \