Lines Matching refs:array

23 	struct bpf_array *array;  in array_map_alloc()  local
41 attr->max_entries > (U32_MAX - PAGE_SIZE - sizeof(*array)) / elem_size) in array_map_alloc()
44 array_size = sizeof(*array) + attr->max_entries * elem_size; in array_map_alloc()
47 array = kzalloc(array_size, GFP_USER | __GFP_NOWARN); in array_map_alloc()
48 if (!array) { in array_map_alloc()
49 array = vzalloc(array_size); in array_map_alloc()
50 if (!array) in array_map_alloc()
55 array->map.key_size = attr->key_size; in array_map_alloc()
56 array->map.value_size = attr->value_size; in array_map_alloc()
57 array->map.max_entries = attr->max_entries; in array_map_alloc()
58 array->map.pages = round_up(array_size, PAGE_SIZE) >> PAGE_SHIFT; in array_map_alloc()
59 array->elem_size = elem_size; in array_map_alloc()
61 return &array->map; in array_map_alloc()
67 struct bpf_array *array = container_of(map, struct bpf_array, map); in array_map_lookup_elem() local
70 if (index >= array->map.max_entries) in array_map_lookup_elem()
73 return array->value + array->elem_size * index; in array_map_lookup_elem()
79 struct bpf_array *array = container_of(map, struct bpf_array, map); in array_map_get_next_key() local
83 if (index >= array->map.max_entries) { in array_map_get_next_key()
88 if (index == array->map.max_entries - 1) in array_map_get_next_key()
99 struct bpf_array *array = container_of(map, struct bpf_array, map); in array_map_update_elem() local
106 if (index >= array->map.max_entries) in array_map_update_elem()
114 memcpy(array->value + array->elem_size * index, value, map->value_size); in array_map_update_elem()
127 struct bpf_array *array = container_of(map, struct bpf_array, map); in array_map_free() local
136 kvfree(array); in array_map_free()
170 struct bpf_array *array = container_of(map, struct bpf_array, map); in fd_array_map_free() local
176 for (i = 0; i < array->map.max_entries; i++) in fd_array_map_free()
177 BUG_ON(array->ptrs[i] != NULL); in fd_array_map_free()
178 kvfree(array); in fd_array_map_free()
190 struct bpf_array *array = container_of(map, struct bpf_array, map); in fd_array_map_update_elem() local
197 if (index >= array->map.max_entries) in fd_array_map_update_elem()
205 old_ptr = xchg(array->ptrs + index, new_ptr); in fd_array_map_update_elem()
214 struct bpf_array *array = container_of(map, struct bpf_array, map); in fd_array_map_delete_elem() local
218 if (index >= array->map.max_entries) in fd_array_map_delete_elem()
221 old_ptr = xchg(array->ptrs + index, NULL); in fd_array_map_delete_elem()
232 struct bpf_array *array = container_of(map, struct bpf_array, map); in prog_fd_array_get_ptr() local
237 if (!bpf_prog_array_compatible(array, prog)) { in prog_fd_array_get_ptr()
254 struct bpf_array *array = container_of(map, struct bpf_array, map); in bpf_fd_array_map_clear() local
257 for (i = 0; i < array->map.max_entries; i++) in bpf_fd_array_map_clear()