Lines Matching refs:map
26 struct bpf_map *map; in find_and_alloc_map() local
30 map = tl->ops->map_alloc(attr); in find_and_alloc_map()
31 if (IS_ERR(map)) in find_and_alloc_map()
32 return map; in find_and_alloc_map()
33 map->ops = tl->ops; in find_and_alloc_map()
34 map->map_type = attr->map_type; in find_and_alloc_map()
35 return map; in find_and_alloc_map()
50 struct bpf_map *map = container_of(work, struct bpf_map, work); in bpf_map_free_deferred() local
53 map->ops->map_free(map); in bpf_map_free_deferred()
59 void bpf_map_put(struct bpf_map *map) in bpf_map_put() argument
61 if (atomic_dec_and_test(&map->refcnt)) { in bpf_map_put()
62 INIT_WORK(&map->work, bpf_map_free_deferred); in bpf_map_put()
63 schedule_work(&map->work); in bpf_map_put()
69 struct bpf_map *map = filp->private_data; in bpf_map_release() local
71 bpf_map_put(map); in bpf_map_release()
91 struct bpf_map *map; in map_create() local
99 map = find_and_alloc_map(attr); in map_create()
100 if (IS_ERR(map)) in map_create()
101 return PTR_ERR(map); in map_create()
103 atomic_set(&map->refcnt, 1); in map_create()
105 err = anon_inode_getfd("bpf-map", &bpf_map_fops, map, O_RDWR | O_CLOEXEC); in map_create()
114 map->ops->map_free(map); in map_create()
123 struct bpf_map *map; in bpf_map_get() local
133 map = f.file->private_data; in bpf_map_get()
135 return map; in bpf_map_get()
153 struct bpf_map *map; in map_lookup_elem() local
160 map = bpf_map_get(f); in map_lookup_elem()
161 if (IS_ERR(map)) in map_lookup_elem()
162 return PTR_ERR(map); in map_lookup_elem()
165 key = kmalloc(map->key_size, GFP_USER); in map_lookup_elem()
170 if (copy_from_user(key, ukey, map->key_size) != 0) in map_lookup_elem()
174 value = kmalloc(map->value_size, GFP_USER); in map_lookup_elem()
179 ptr = map->ops->map_lookup_elem(map, key); in map_lookup_elem()
181 memcpy(value, ptr, map->value_size); in map_lookup_elem()
189 if (copy_to_user(uvalue, value, map->value_size) != 0) in map_lookup_elem()
211 struct bpf_map *map; in map_update_elem() local
218 map = bpf_map_get(f); in map_update_elem()
219 if (IS_ERR(map)) in map_update_elem()
220 return PTR_ERR(map); in map_update_elem()
223 key = kmalloc(map->key_size, GFP_USER); in map_update_elem()
228 if (copy_from_user(key, ukey, map->key_size) != 0) in map_update_elem()
232 value = kmalloc(map->value_size, GFP_USER); in map_update_elem()
237 if (copy_from_user(value, uvalue, map->value_size) != 0) in map_update_elem()
244 err = map->ops->map_update_elem(map, key, value, attr->flags); in map_update_elem()
263 struct bpf_map *map; in map_delete_elem() local
270 map = bpf_map_get(f); in map_delete_elem()
271 if (IS_ERR(map)) in map_delete_elem()
272 return PTR_ERR(map); in map_delete_elem()
275 key = kmalloc(map->key_size, GFP_USER); in map_delete_elem()
280 if (copy_from_user(key, ukey, map->key_size) != 0) in map_delete_elem()
284 err = map->ops->map_delete_elem(map, key); in map_delete_elem()
303 struct bpf_map *map; in map_get_next_key() local
310 map = bpf_map_get(f); in map_get_next_key()
311 if (IS_ERR(map)) in map_get_next_key()
312 return PTR_ERR(map); in map_get_next_key()
315 key = kmalloc(map->key_size, GFP_USER); in map_get_next_key()
320 if (copy_from_user(key, ukey, map->key_size) != 0) in map_get_next_key()
324 next_key = kmalloc(map->key_size, GFP_USER); in map_get_next_key()
329 err = map->ops->map_get_next_key(map, key, next_key); in map_get_next_key()
335 if (copy_to_user(unext_key, next_key, map->key_size) != 0) in map_get_next_key()