static void setup_all_task_structs(void) { struct lcore_cfg *lconf; uint32_t lcore_id = -1; struct task_base *tmaster = NULL; while(prox_core_next(&lcore_id, 1) == 0) { lconf = &lcore_cfg[lcore_id]; for (uint8_t task_id = 0; task_id < lconf->n_tasks_all; ++task_id) { if (task_is_master(&lconf->targs[task_id])) { plog_info("\tInitializing MASTER struct for core %d task %d\n", lcore_id, task_id); lconf->tasks_all[task_id] = init_task_struct(&lconf->targs[task_id]); tmaster = lconf->tasks_all[task_id]; } } } PROX_PANIC(tmaster == NULL, "Can't initialize master task\n"); lcore_id = -1; while(prox_core_next(&lcore_id, 1) == 0) { lconf = &lcore_cfg[lcore_id]; plog_info("\tInitializing struct for core %d with %d task\n", lcore_id, lconf->n_tasks_all); for (uint8_t task_id = 0; task_id < lconf->n_tasks_all; ++task_id) { if (!task_is_master(&lconf->targs[task_id])) { plog_info("\tInitializing struct for core %d task %d\n", lcore_id, task_id); lconf->targs[task_id].tmaster = tmaster; lconf->tasks_all[task_id] = init_task_struct(&lconf->targs[task_id]); } } } }
static void setup_all_task_structs(void) { struct lcore_cfg *lconf; for (uint8_t lcore_id = 0; lcore_id < RTE_MAX_LCORE; ++lcore_id) { if (!rte_lcore_is_enabled(lcore_id) || lcore_id == tgen_cfg.master) { continue; } lconf = &lcore_cfg[lcore_id]; for (uint8_t task_id = 0; task_id < lconf->nb_tasks; ++task_id) { lconf->startup_cfg[task_id].lconf = lconf; lconf->task[task_id] = init_task_struct(&lconf->startup_cfg[task_id]); } } }