Lines Matching refs:insn_array
39 struct bpf_insn_array *insn_array = cast_insn_array(map); in insn_array_free() local
41 bpf_map_area_free(insn_array); in insn_array_free()
47 struct bpf_insn_array *insn_array; in insn_array_alloc() local
49 insn_array = bpf_map_area_alloc(size, NUMA_NO_NODE); in insn_array_alloc()
50 if (!insn_array) in insn_array_alloc()
54 insn_array->ips = (void *)&insn_array->values[attr->max_entries]; in insn_array_alloc()
56 bpf_map_init_from_attr(&insn_array->map, attr); in insn_array_alloc()
59 insn_array->map.map_flags |= BPF_F_RDONLY_PROG; in insn_array_alloc()
61 return &insn_array->map; in insn_array_alloc()
66 struct bpf_insn_array *insn_array = cast_insn_array(map); in insn_array_lookup_elem() local
69 if (unlikely(index >= insn_array->map.max_entries)) in insn_array_lookup_elem()
72 return &insn_array->values[index]; in insn_array_lookup_elem()
77 struct bpf_insn_array *insn_array = cast_insn_array(map); in insn_array_update_elem() local
81 if (unlikely(index >= insn_array->map.max_entries)) in insn_array_update_elem()
91 insn_array->values[index].orig_off = val.orig_off; in insn_array_update_elem()
122 struct bpf_insn_array *insn_array = cast_insn_array(map); in insn_array_map_direct_value_addr() local
129 *imm = (unsigned long)insn_array->ips; in insn_array_map_direct_value_addr()
162 static inline bool valid_offsets(const struct bpf_insn_array *insn_array, in valid_offsets() argument
168 for (i = 0; i < insn_array->map.max_entries; i++) { in valid_offsets()
169 off = insn_array->values[i].orig_off; in valid_offsets()
185 struct bpf_insn_array *insn_array = cast_insn_array(map); in bpf_insn_array_init() local
186 struct bpf_insn_array_value *values = insn_array->values; in bpf_insn_array_init()
192 if (!valid_offsets(insn_array, prog)) in bpf_insn_array_init()
198 if (atomic_xchg(&insn_array->used, 1)) in bpf_insn_array_init()
214 struct bpf_insn_array *insn_array = cast_insn_array(map); in bpf_insn_array_ready() local
218 if (insn_array->values[i].xlated_off == INSN_DELETED) in bpf_insn_array_ready()
220 if (!insn_array->ips[i]) in bpf_insn_array_ready()
229 struct bpf_insn_array *insn_array = cast_insn_array(map); in bpf_insn_array_release() local
231 atomic_set(&insn_array->used, 0); in bpf_insn_array_release()
236 struct bpf_insn_array *insn_array = cast_insn_array(map); in bpf_insn_array_adjust() local
243 if (insn_array->values[i].xlated_off <= off) in bpf_insn_array_adjust()
245 if (insn_array->values[i].xlated_off == INSN_DELETED) in bpf_insn_array_adjust()
247 insn_array->values[i].xlated_off += len - 1; in bpf_insn_array_adjust()
253 struct bpf_insn_array *insn_array = cast_insn_array(map); in bpf_insn_array_adjust_after_remove() local
257 if (insn_array->values[i].xlated_off < off) in bpf_insn_array_adjust_after_remove()
259 if (insn_array->values[i].xlated_off == INSN_DELETED) in bpf_insn_array_adjust_after_remove()
261 if (insn_array->values[i].xlated_off < off + len) in bpf_insn_array_adjust_after_remove()
262 insn_array->values[i].xlated_off = INSN_DELETED; in bpf_insn_array_adjust_after_remove()
264 insn_array->values[i].xlated_off -= len; in bpf_insn_array_adjust_after_remove()
276 struct bpf_insn_array *insn_array; in bpf_prog_update_insn_ptrs() local
289 insn_array = cast_insn_array(map); in bpf_prog_update_insn_ptrs()
291 xlated_off = insn_array->values[j].xlated_off; in bpf_prog_update_insn_ptrs()
300 insn_array->values[j].jitted_off = offsets[xlated_off]; in bpf_prog_update_insn_ptrs()
301 insn_array->ips[j] = (long)(image + offsets[xlated_off]); in bpf_prog_update_insn_ptrs()