Lines Matching full:aux

81 	tab = prog->aux->kfunc_tab;
112 tab = env->prog->aux->kfunc_tab;
168 /* aux info at OFF always needs adjustment, no matter fast path
235 struct bpf_jit_poke_descriptor *tab = prog->aux->poke_tab;
236 int i, sz = prog->aux->size_poke_tab;
337 struct bpf_prog_aux *aux = env->prog->aux;
349 if (aux->func_info) {
350 move = aux->func_info_cnt - j;
352 memmove(aux->func_info + i,
353 aux->func_info + j,
354 sizeof(*aux->func_info) * move);
355 aux->func_info_cnt -= j - i;
380 nr_linfo = prog->aux->nr_linfo;
384 linfo = prog->aux->linfo;
414 prog->aux->nr_linfo -= l_cnt;
415 nr_linfo = prog->aux->nr_linfo;
438 * Clean up dynamically allocated fields of aux data for instructions [start, ...]
464 if (bpf_prog_is_offloaded(env->prog->aux))
526 if (bpf_prog_is_offloaded(env->prog->aux))
589 struct bpf_insn_aux_data *aux = env->insn_aux_data;
607 if (!aux[adj_idx].zext_dst) {
632 aux[adj_idx].ptr_type == PTR_TO_CTX)
676 aux = env->insn_aux_data;
755 if (bpf_prog_is_offloaded(env->prog->aux))
809 env->prog->aux->num_exentries++;
887 env->prog->aux->num_exentries++;
900 env->prog->aux->num_exentries++;
1105 func[i]->aux->func_idx = i;
1106 /* Below members will be freed only at prog->aux */
1107 func[i]->aux->btf = prog->aux->btf;
1108 func[i]->aux->subprog_start = subprog_start;
1109 func[i]->aux->func_info = prog->aux->func_info;
1110 func[i]->aux->func_info_cnt = prog->aux->func_info_cnt;
1111 func[i]->aux->poke_tab = prog->aux->poke_tab;
1112 func[i]->aux->size_poke_tab = prog->aux->size_poke_tab;
1113 func[i]->aux->main_prog_aux = prog->aux;
1115 for (j = 0; j < prog->aux->size_poke_tab; j++) {
1118 poke = &prog->aux->poke_tab[j];
1121 poke->aux = func[i]->aux;
1124 func[i]->aux->name[0] = 'F';
1125 func[i]->aux->stack_depth = env->subprog_info[i].stack_depth;
1127 func[i]->aux->jits_use_priv_stack = true;
1131 func[i]->aux->kfunc_tab = prog->aux->kfunc_tab;
1132 func[i]->aux->kfunc_btf_tab = prog->aux->kfunc_btf_tab;
1133 func[i]->aux->linfo = prog->aux->linfo;
1134 func[i]->aux->nr_linfo = prog->aux->nr_linfo;
1135 func[i]->aux->jited_linfo = prog->aux->jited_linfo;
1136 func[i]->aux->linfo_idx = env->subprog_info[i].linfo_idx;
1137 func[i]->aux->arena = prog->aux->arena;
1138 func[i]->aux->used_maps = env->used_maps;
1139 func[i]->aux->used_map_cnt = env->used_map_cnt;
1157 func[i]->aux->num_exentries = num_exentries;
1158 func[i]->aux->tail_call_reachable = env->subprog_info[i].tail_call_reachable;
1159 func[i]->aux->exception_cb = env->subprog_info[i].is_exception_cb;
1160 func[i]->aux->changes_pkt_data = env->subprog_info[i].changes_pkt_data;
1161 func[i]->aux->might_sleep = env->subprog_info[i].might_sleep;
1162 func[i]->aux->token = prog->aux->token;
1164 func[i]->aux->exception_boundary = env->seen_exception;
1192 /* we use the aux data to keep a list of the start addresses
1203 func[i]->aux->func = func;
1204 func[i]->aux->func_cnt = env->subprog_cnt - env->hidden_subprog_cnt;
1205 func[i]->aux->real_func_cnt = env->subprog_cnt;
1219 * Cleanup func[i]->aux fields which aren't required
1223 func[i]->aux->used_maps = NULL;
1224 func[i]->aux->used_map_cnt = 0;
1261 prog->aux->extable = func[0]->aux->extable;
1262 prog->aux->num_exentries = func[0]->aux->num_exentries;
1263 prog->aux->func = func;
1264 prog->aux->func_cnt = env->subprog_cnt - env->hidden_subprog_cnt;
1265 prog->aux->real_func_cnt = env->subprog_cnt;
1266 prog->aux->bpf_exception_cb = (void *)func[env->exception_callback_subprog]->bpf_func;
1267 prog->aux->exception_boundary = func[0]->aux->exception_boundary;
1268 prog->aux->stack_arg_sp_adjust = func[0]->aux->stack_arg_sp_adjust;
1276 for (i = 0; i < prog->aux->size_poke_tab; i++) {
1277 map_ptr = prog->aux->poke_tab[i].tail_call.map;
1278 map_ptr->ops->map_poke_untrack(map_ptr, prog->aux);
1287 func[i]->aux->poke_tab = NULL;
1399 !bpf_prog_is_offloaded(env->prog->aux)) {
1417 if (env->subprog_cnt > 1 && env->prog->aux->tail_call_reachable) {
1490 struct bpf_insn_aux_data *aux;
1519 (((struct bpf_map *)env->prog->aux->arena)->map_flags & BPF_F_NO_USER_CONV)) {
1712 aux = &env->insn_aux_data[i + delta];
1713 if (!aux->alu_state ||
1714 aux->alu_state == BPF_ALU_NON_POINTER)
1717 isneg = aux->alu_state & BPF_ALU_NEG_VALUE;
1718 issrc = (aux->alu_state & BPF_ALU_SANITIZE) ==
1720 isimm = aux->alu_state & BPF_ALU_IMMEDIATE;
1724 *patch++ = BPF_MOV32_IMM(BPF_REG_AX, aux->alu_limit);
1728 *patch++ = BPF_MOV32_IMM(BPF_REG_AX, aux->alu_limit);
1861 prog->aux->stack_depth = MAX_BPF_STACK;
1862 prog->aux->max_pkt_offset = MAX_PACKET_OFF;
1872 aux = &env->insn_aux_data[i + delta];
1875 !bpf_map_key_poisoned(aux) &&
1876 !bpf_map_ptr_poisoned(aux) &&
1877 !bpf_map_ptr_unpriv(aux)) {
1880 .tail_call.map = aux->map_ptr_state.map_ptr,
1881 .tail_call.key = bpf_map_key_immediate(aux),
1895 if (!bpf_map_ptr_unpriv(aux))
1904 if (bpf_map_ptr_poisoned(aux)) {
1909 map_ptr = aux->map_ptr_state.map_ptr;
1943 BPF_LD_IMM64(BPF_REG_3, (long)prog->aux),
1994 aux = &env->insn_aux_data[i + delta];
1995 if (bpf_map_ptr_poisoned(aux))
1998 map_ptr = aux->map_ptr_state.map_ptr;
2154 int nr_args = btf_type_vlen(prog->aux->attach_func_proto);
2220 int nr_args = btf_type_vlen(prog->aux->attach_func_proto);
2361 env->prog->aux->stack_depth = subprogs[0].stack_depth;
2402 /* Since poke tab is now finalized, publish aux to tracker. */
2403 for (i = 0; i < prog->aux->size_poke_tab; i++) {
2404 map_ptr = prog->aux->poke_tab[i].tail_call.map;
2412 ret = map_ptr->ops->map_poke_track(map_ptr, prog->aux);
2558 env->prog->aux->stack_depth = env->subprog_info[0].stack_depth;
2569 struct bpf_insn_aux_data *aux = env->insn_aux_data;
2577 if (aux[i].fastcall_spills_num > 0) {
2578 spills_num = aux[i].fastcall_spills_num;