Lines Matching refs:offmap

333 static int nsim_map_key_find(struct bpf_offloaded_map *offmap, void *key)
335 struct nsim_bpf_bound_map *nmap = offmap->dev_priv;
339 if (nsim_map_key_match(&offmap->map, &nmap->entry[i], key))
346 nsim_map_alloc_elem(struct bpf_offloaded_map *offmap, unsigned int idx)
348 struct nsim_bpf_bound_map *nmap = offmap->dev_priv;
350 nmap->entry[idx].key = kmalloc(offmap->map.key_size,
354 nmap->entry[idx].value = kmalloc(offmap->map.value_size,
366 nsim_map_get_next_key(struct bpf_offloaded_map *offmap,
369 struct nsim_bpf_bound_map *nmap = offmap->dev_priv;
375 idx = nsim_map_key_find(offmap, key);
384 offmap->map.key_size);
397 nsim_map_lookup_elem(struct bpf_offloaded_map *offmap, void *key, void *value)
399 struct nsim_bpf_bound_map *nmap = offmap->dev_priv;
404 idx = nsim_map_key_find(offmap, key);
406 memcpy(value, nmap->entry[idx].value, offmap->map.value_size);
414 nsim_map_update_elem(struct bpf_offloaded_map *offmap,
417 struct nsim_bpf_bound_map *nmap = offmap->dev_priv;
422 idx = nsim_map_key_find(offmap, key);
441 err = nsim_map_alloc_elem(offmap, idx);
446 memcpy(nmap->entry[idx].key, key, offmap->map.key_size);
447 memcpy(nmap->entry[idx].value, value, offmap->map.value_size);
454 static int nsim_map_delete_elem(struct bpf_offloaded_map *offmap, void *key)
456 struct nsim_bpf_bound_map *nmap = offmap->dev_priv;
459 if (offmap->map.map_type == BPF_MAP_TYPE_ARRAY)
464 idx = nsim_map_key_find(offmap, key);
484 nsim_bpf_map_alloc(struct netdevsim *ns, struct bpf_offloaded_map *offmap)
489 if (WARN_ON(offmap->map.map_type != BPF_MAP_TYPE_ARRAY &&
490 offmap->map.map_type != BPF_MAP_TYPE_HASH))
492 if (offmap->map.max_entries > NSIM_BPF_MAX_KEYS)
494 if (offmap->map.map_flags)
501 offmap->dev_priv = nmap;
503 nmap->map = offmap;
506 if (offmap->map.map_type == BPF_MAP_TYPE_ARRAY) {
510 err = nsim_map_alloc_elem(offmap, i);
515 memset(nmap->entry[i].value, 0, offmap->map.value_size);
519 offmap->dev_ops = &nsim_bpf_map_ops;
533 static void nsim_bpf_map_free(struct bpf_offloaded_map *offmap)
535 struct nsim_bpf_bound_map *nmap = offmap->dev_priv;
571 return nsim_bpf_map_alloc(ns, bpf->offmap);
573 nsim_bpf_map_free(bpf->offmap);