Lines Matching refs:map

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()
61 return &array->map; in array_map_alloc()
65 static void *array_map_lookup_elem(struct bpf_map *map, void *key) in array_map_lookup_elem() argument
67 struct bpf_array *array = container_of(map, struct bpf_array, map); in array_map_lookup_elem()
70 if (index >= array->map.max_entries) in array_map_lookup_elem()
77 static int array_map_get_next_key(struct bpf_map *map, void *key, void *next_key) in array_map_get_next_key() argument
79 struct bpf_array *array = container_of(map, struct bpf_array, map); in array_map_get_next_key()
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()
96 static int array_map_update_elem(struct bpf_map *map, void *key, void *value, in array_map_update_elem() argument
99 struct bpf_array *array = container_of(map, struct bpf_array, map); in array_map_update_elem()
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()
119 static int array_map_delete_elem(struct bpf_map *map, void *key) in array_map_delete_elem() argument
125 static void array_map_free(struct bpf_map *map) in array_map_free() argument
127 struct bpf_array *array = container_of(map, struct bpf_array, map); in array_map_free()
168 static void fd_array_map_free(struct bpf_map *map) in fd_array_map_free() argument
170 struct bpf_array *array = container_of(map, struct bpf_array, map); in fd_array_map_free()
176 for (i = 0; i < array->map.max_entries; i++) in fd_array_map_free()
181 static void *fd_array_map_lookup_elem(struct bpf_map *map, void *key) in fd_array_map_lookup_elem() argument
187 static int fd_array_map_update_elem(struct bpf_map *map, void *key, in fd_array_map_update_elem() argument
190 struct bpf_array *array = container_of(map, struct bpf_array, map); in fd_array_map_update_elem()
197 if (index >= array->map.max_entries) in fd_array_map_update_elem()
201 new_ptr = map->ops->map_fd_get_ptr(map, ufd); in fd_array_map_update_elem()
207 map->ops->map_fd_put_ptr(old_ptr); in fd_array_map_update_elem()
212 static int fd_array_map_delete_elem(struct bpf_map *map, void *key) in fd_array_map_delete_elem() argument
214 struct bpf_array *array = container_of(map, struct bpf_array, map); in fd_array_map_delete_elem()
218 if (index >= array->map.max_entries) in fd_array_map_delete_elem()
223 map->ops->map_fd_put_ptr(old_ptr); in fd_array_map_delete_elem()
230 static void *prog_fd_array_get_ptr(struct bpf_map *map, int fd) in prog_fd_array_get_ptr() argument
232 struct bpf_array *array = container_of(map, struct bpf_array, map); in prog_fd_array_get_ptr()
252 void bpf_fd_array_map_clear(struct bpf_map *map) in bpf_fd_array_map_clear() argument
254 struct bpf_array *array = container_of(map, struct bpf_array, map); in bpf_fd_array_map_clear()
257 for (i = 0; i < array->map.max_entries; i++) in bpf_fd_array_map_clear()
258 fd_array_map_delete_elem(map, &i); in bpf_fd_array_map_clear()
284 static void perf_event_array_map_free(struct bpf_map *map) in perf_event_array_map_free() argument
286 bpf_fd_array_map_clear(map); in perf_event_array_map_free()
287 fd_array_map_free(map); in perf_event_array_map_free()
290 static void *perf_event_fd_array_get_ptr(struct bpf_map *map, int fd) in perf_event_fd_array_get_ptr() argument