| 263 | } |
| 264 | |
| 265 | int |
| 266 | rte_malloc_heap_get_socket(const char *name) |
| 267 | { |
| 268 | struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config; |
| 269 | struct malloc_heap *heap = NULL; |
| 270 | unsigned int idx; |
| 271 | int ret; |
| 272 | |
| 273 | if (name == NULL || |
| 274 | strnlen(name, RTE_HEAP_NAME_MAX_LEN) == 0 || |
| 275 | strnlen(name, RTE_HEAP_NAME_MAX_LEN) == |
| 276 | RTE_HEAP_NAME_MAX_LEN) { |
| 277 | rte_errno = EINVAL; |
| 278 | return -1; |
| 279 | } |
| 280 | rte_mcfg_mem_read_lock(); |
| 281 | for (idx = 0; idx < RTE_MAX_HEAPS; idx++) { |
| 282 | struct malloc_heap *tmp = &mcfg->malloc_heaps[idx]; |
| 283 | |
| 284 | if (!strncmp(name, tmp->name, RTE_HEAP_NAME_MAX_LEN)) { |
| 285 | heap = tmp; |
| 286 | break; |
| 287 | } |
| 288 | } |
| 289 | |
| 290 | if (heap != NULL) { |
| 291 | ret = heap->socket_id; |
| 292 | } else { |
| 293 | rte_errno = ENOENT; |
| 294 | ret = -1; |
| 295 | } |
| 296 | rte_mcfg_mem_read_unlock(); |
| 297 | |
| 298 | return ret; |
| 299 | } |
| 300 | |
| 301 | int |
| 302 | rte_malloc_heap_socket_is_external(int socket_id) |