Lines Matching refs:nmap
339 struct nsim_bpf_bound_map *nmap = offmap->dev_priv;
342 for (i = 0; i < ARRAY_SIZE(nmap->entry); i++)
343 if (nsim_map_key_match(&offmap->map, &nmap->entry[i], key))
352 struct nsim_bpf_bound_map *nmap = offmap->dev_priv;
354 nmap->entry[idx].key = kmalloc(offmap->map.key_size,
356 if (!nmap->entry[idx].key)
358 nmap->entry[idx].value = kmalloc(offmap->map.value_size,
360 if (!nmap->entry[idx].value) {
361 kfree(nmap->entry[idx].key);
362 nmap->entry[idx].key = NULL;
373 struct nsim_bpf_bound_map *nmap = offmap->dev_priv;
376 mutex_lock(&nmap->mutex);
385 for (; idx < ARRAY_SIZE(nmap->entry); idx++) {
386 if (nmap->entry[idx].key) {
387 memcpy(next_key, nmap->entry[idx].key,
393 mutex_unlock(&nmap->mutex);
395 if (idx == ARRAY_SIZE(nmap->entry))
403 struct nsim_bpf_bound_map *nmap = offmap->dev_priv;
406 mutex_lock(&nmap->mutex);
410 memcpy(value, nmap->entry[idx].value, offmap->map.value_size);
412 mutex_unlock(&nmap->mutex);
421 struct nsim_bpf_bound_map *nmap = offmap->dev_priv;
424 mutex_lock(&nmap->mutex);
437 for (idx = 0; idx < ARRAY_SIZE(nmap->entry); idx++)
438 if (!nmap->entry[idx].key)
440 if (idx == ARRAY_SIZE(nmap->entry)) {
450 memcpy(nmap->entry[idx].key, key, offmap->map.key_size);
451 memcpy(nmap->entry[idx].value, value, offmap->map.value_size);
453 mutex_unlock(&nmap->mutex);
460 struct nsim_bpf_bound_map *nmap = offmap->dev_priv;
466 mutex_lock(&nmap->mutex);
470 kfree(nmap->entry[idx].key);
471 kfree(nmap->entry[idx].value);
472 memset(&nmap->entry[idx], 0, sizeof(nmap->entry[idx]));
475 mutex_unlock(&nmap->mutex);
490 struct nsim_bpf_bound_map *nmap;
501 nmap = kzalloc(sizeof(*nmap), GFP_KERNEL_ACCOUNT);
502 if (!nmap)
505 offmap->dev_priv = nmap;
506 nmap->ns = ns;
507 nmap->map = offmap;
508 mutex_init(&nmap->mutex);
511 for (i = 0; i < ARRAY_SIZE(nmap->entry); i++) {
517 key = nmap->entry[i].key;
519 memset(nmap->entry[i].value, 0, offmap->map.value_size);
524 list_add_tail(&nmap->l, &ns->nsim_dev->bpf_bound_maps);
530 kfree(nmap->entry[i].key);
531 kfree(nmap->entry[i].value);
533 kfree(nmap);
539 struct nsim_bpf_bound_map *nmap = offmap->dev_priv;
542 for (i = 0; i < ARRAY_SIZE(nmap->entry); i++) {
543 kfree(nmap->entry[i].key);
544 kfree(nmap->entry[i].value);
546 list_del_init(&nmap->l);
547 mutex_destroy(&nmap->mutex);
548 kfree(nmap);