Lines Matching refs:nmap

342 	struct nsim_bpf_bound_map *nmap = offmap->dev_priv;  in nsim_map_key_find()  local
345 for (i = 0; i < ARRAY_SIZE(nmap->entry); i++) in nsim_map_key_find()
346 if (nsim_map_key_match(&offmap->map, &nmap->entry[i], key)) in nsim_map_key_find()
355 struct nsim_bpf_bound_map *nmap = offmap->dev_priv; in nsim_map_alloc_elem() local
357 nmap->entry[idx].key = kmalloc(offmap->map.key_size, in nsim_map_alloc_elem()
359 if (!nmap->entry[idx].key) in nsim_map_alloc_elem()
361 nmap->entry[idx].value = kmalloc(offmap->map.value_size, in nsim_map_alloc_elem()
363 if (!nmap->entry[idx].value) { in nsim_map_alloc_elem()
364 kfree(nmap->entry[idx].key); in nsim_map_alloc_elem()
365 nmap->entry[idx].key = NULL; in nsim_map_alloc_elem()
376 struct nsim_bpf_bound_map *nmap = offmap->dev_priv; in nsim_map_get_next_key() local
379 mutex_lock(&nmap->mutex); in nsim_map_get_next_key()
388 for (; idx < ARRAY_SIZE(nmap->entry); idx++) { in nsim_map_get_next_key()
389 if (nmap->entry[idx].key) { in nsim_map_get_next_key()
390 memcpy(next_key, nmap->entry[idx].key, in nsim_map_get_next_key()
396 mutex_unlock(&nmap->mutex); in nsim_map_get_next_key()
398 if (idx == ARRAY_SIZE(nmap->entry)) in nsim_map_get_next_key()
406 struct nsim_bpf_bound_map *nmap = offmap->dev_priv; in nsim_map_lookup_elem() local
409 mutex_lock(&nmap->mutex); in nsim_map_lookup_elem()
413 memcpy(value, nmap->entry[idx].value, offmap->map.value_size); in nsim_map_lookup_elem()
415 mutex_unlock(&nmap->mutex); in nsim_map_lookup_elem()
424 struct nsim_bpf_bound_map *nmap = offmap->dev_priv; in nsim_map_update_elem() local
427 mutex_lock(&nmap->mutex); in nsim_map_update_elem()
440 for (idx = 0; idx < ARRAY_SIZE(nmap->entry); idx++) in nsim_map_update_elem()
441 if (!nmap->entry[idx].key) in nsim_map_update_elem()
443 if (idx == ARRAY_SIZE(nmap->entry)) { in nsim_map_update_elem()
453 memcpy(nmap->entry[idx].key, key, offmap->map.key_size); in nsim_map_update_elem()
454 memcpy(nmap->entry[idx].value, value, offmap->map.value_size); in nsim_map_update_elem()
456 mutex_unlock(&nmap->mutex); in nsim_map_update_elem()
463 struct nsim_bpf_bound_map *nmap = offmap->dev_priv; in nsim_map_delete_elem() local
469 mutex_lock(&nmap->mutex); in nsim_map_delete_elem()
473 kfree(nmap->entry[idx].key); in nsim_map_delete_elem()
474 kfree(nmap->entry[idx].value); in nsim_map_delete_elem()
475 memset(&nmap->entry[idx], 0, sizeof(nmap->entry[idx])); in nsim_map_delete_elem()
478 mutex_unlock(&nmap->mutex); in nsim_map_delete_elem()
493 struct nsim_bpf_bound_map *nmap; in nsim_bpf_map_alloc() local
504 nmap = kzalloc_obj(*nmap, GFP_KERNEL_ACCOUNT); in nsim_bpf_map_alloc()
505 if (!nmap) in nsim_bpf_map_alloc()
508 offmap->dev_priv = nmap; in nsim_bpf_map_alloc()
509 nmap->ns = ns; in nsim_bpf_map_alloc()
510 nmap->map = offmap; in nsim_bpf_map_alloc()
511 mutex_init(&nmap->mutex); in nsim_bpf_map_alloc()
514 for (i = 0; i < ARRAY_SIZE(nmap->entry); i++) { in nsim_bpf_map_alloc()
520 key = nmap->entry[i].key; in nsim_bpf_map_alloc()
522 memset(nmap->entry[i].value, 0, offmap->map.value_size); in nsim_bpf_map_alloc()
527 list_add_tail(&nmap->l, &ns->nsim_dev->bpf_bound_maps); in nsim_bpf_map_alloc()
533 kfree(nmap->entry[i].key); in nsim_bpf_map_alloc()
534 kfree(nmap->entry[i].value); in nsim_bpf_map_alloc()
536 kfree(nmap); in nsim_bpf_map_alloc()
542 struct nsim_bpf_bound_map *nmap = offmap->dev_priv; in nsim_bpf_map_free() local
545 for (i = 0; i < ARRAY_SIZE(nmap->entry); i++) { in nsim_bpf_map_free()
546 kfree(nmap->entry[i].key); in nsim_bpf_map_free()
547 kfree(nmap->entry[i].value); in nsim_bpf_map_free()
549 list_del_init(&nmap->l); in nsim_bpf_map_free()
550 mutex_destroy(&nmap->mutex); in nsim_bpf_map_free()
551 kfree(nmap); in nsim_bpf_map_free()