if (a) {
a->instructions = instr;
+ a->instruction_data = data;
a->n_instructions = n_instructions;
} else {
p->instructions = instr;
+ p->instruction_data = data;
p->n_instructions = n_instructions;
}
- free(data);
return 0;
error:
{
struct action *action;
- p->action_instructions = calloc(p->n_actions,
- sizeof(struct instruction *));
+ /* p->action_instructions. */
+ p->action_instructions = calloc(p->n_actions, sizeof(struct instruction *));
CHECK(p->action_instructions, ENOMEM);
TAILQ_FOREACH(action, &p->actions, node)
break;
TAILQ_REMOVE(&p->actions, action, node);
+ free(action->instruction_data);
free(action->instructions);
free(action);
}
if (!p)
return;
+ free(p->instruction_data);
free(p->instructions);
metarray_free(p);
struct struct_type *st;
int *args_endianness; /* 0 = Host Byte Order (HBO); 1 = Network Byte Order (NBO). */
struct instruction *instructions;
+ struct instruction_data *instruction_data;
uint32_t n_instructions;
uint32_t id;
};
struct regarray_runtime *regarray_runtime;
struct metarray_runtime *metarray_runtime;
struct instruction *instructions;
+ struct instruction_data *instruction_data;
struct thread threads[RTE_SWX_PIPELINE_THREADS_MAX];
uint32_t n_structs;