| 1431 | } |
| 1432 | |
| 1433 | static int |
| 1434 | secondary_msl_create_walk(const struct rte_memseg_list *msl, |
| 1435 | void *arg __rte_unused) |
| 1436 | { |
| 1437 | struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config; |
| 1438 | struct rte_memseg_list *primary_msl, *local_msl; |
| 1439 | char name[PATH_MAX]; |
| 1440 | int msl_idx, ret; |
| 1441 | |
| 1442 | if (msl->external) |
| 1443 | return 0; |
| 1444 | |
| 1445 | msl_idx = msl - mcfg->memsegs; |
| 1446 | primary_msl = &mcfg->memsegs[msl_idx]; |
| 1447 | local_msl = &local_memsegs[msl_idx]; |
| 1448 | |
| 1449 | /* create distinct fbarrays for each secondary */ |
| 1450 | snprintf(name, RTE_FBARRAY_NAME_LEN, "%s_%i", |
| 1451 | primary_msl->memseg_arr.name, getpid()); |
| 1452 | |
| 1453 | ret = rte_fbarray_init(&local_msl->memseg_arr, name, |
| 1454 | primary_msl->memseg_arr.len, |
| 1455 | primary_msl->memseg_arr.elt_sz); |
| 1456 | if (ret < 0) { |
| 1457 | RTE_LOG(ERR, EAL, "Cannot initialize local memory map\n"); |
| 1458 | return -1; |
| 1459 | } |
| 1460 | local_msl->base_va = primary_msl->base_va; |
| 1461 | local_msl->len = primary_msl->len; |
| 1462 | |
| 1463 | return 0; |
| 1464 | } |
| 1465 | |
| 1466 | static int |
| 1467 | secondary_msl_destroy_walk(const struct rte_memseg_list *msl, |
nothing calls this directly
no test coverage detected