Lines Matching defs:map
28 struct spdk_mem_map *map;
58 rdma_utils_mem_notify(void *cb_ctx, struct spdk_mem_map *map,
71 rc = spdk_mem_map_set_translation(map, (uint64_t)vaddr, size,
83 rc = spdk_mem_map_set_translation(map, (uint64_t)vaddr, size, (uint64_t)mr);
89 mr = (struct ibv_mr *)spdk_mem_map_translate(map, (uint64_t)vaddr, NULL);
94 rc = spdk_mem_map_clear_translation(map, (uint64_t)vaddr, size);
116 _rdma_free_mem_map(struct spdk_rdma_utils_mem_map *map)
118 assert(map);
120 if (map->hooks) {
121 spdk_free(map);
123 free(map);
131 struct spdk_rdma_utils_mem_map *map;
139 /* Look up existing mem map registration for this pd */
140 LIST_FOREACH(map, &g_rdma_utils_mr_maps, link) {
141 if (map->pd == pd && map->access_flags == access_flags) {
142 map->ref_count++;
144 return map;
149 map = spdk_zmalloc(sizeof(*map), 0, NULL, SPDK_ENV_NUMA_ID_ANY, SPDK_MALLOC_DMA);
151 map = calloc(1, sizeof(*map));
153 if (!map) {
158 map->pd = pd;
159 map->ref_count = 1;
160 map->hooks = hooks;
161 map->access_flags = access_flags;
162 map->map = spdk_mem_map_alloc(0, &g_rdma_map_ops, map);
163 if (!map->map) {
164 SPDK_ERRLOG("Unable to create memory map\n");
165 _rdma_free_mem_map(map);
169 LIST_INSERT_HEAD(&g_rdma_utils_mr_maps, map, link);
173 return map;
179 struct spdk_rdma_utils_mem_map *map;
185 map = *_map;
186 if (!map) {
192 assert(map->ref_count > 0);
193 map->ref_count--;
194 if (map->ref_count != 0) {
199 LIST_REMOVE(map, link);
201 if (map->map) {
202 spdk_mem_map_free(&map->map);
204 _rdma_free_mem_map(map);
208 spdk_rdma_utils_get_translation(struct spdk_rdma_utils_mem_map *map, void *address,
213 assert(map);
217 if (map->hooks && map->hooks->get_rkey) {
219 translation->mr_or_key.key = spdk_mem_map_translate(map->map, (uint64_t)address, &real_length);
222 translation->mr_or_key.mr = (struct ibv_mr *)spdk_mem_map_translate(map->map, (uint64_t)address,