memzone: add iterator function
When doing diagnostic function, it is useful to have a ability to iterate over all memzones. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Olivier Matz <olivier.matz@6wind.com>
This commit is contained in:
parent
e5ac7c2ff3
commit
58f8a1d2e3
@ -505,3 +505,20 @@ rte_eal_memzone_init(void)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Walk all reserved memory zones */
|
||||
void rte_memzone_walk(void (*func)(const struct rte_memzone *, void *),
|
||||
void *arg)
|
||||
{
|
||||
struct rte_mem_config *mcfg;
|
||||
unsigned i;
|
||||
|
||||
mcfg = rte_eal_get_configuration()->mem_config;
|
||||
|
||||
rte_rwlock_read_lock(&mcfg->mlock);
|
||||
for (i=0; i<RTE_MAX_MEMZONE; i++) {
|
||||
if (mcfg->memzone[i].addr != NULL)
|
||||
(*func)(&mcfg->memzone[i], arg);
|
||||
}
|
||||
rte_rwlock_read_unlock(&mcfg->mlock);
|
||||
}
|
||||
|
@ -252,6 +252,17 @@ const struct rte_memzone *rte_memzone_lookup(const char *name);
|
||||
*/
|
||||
void rte_memzone_dump(FILE *);
|
||||
|
||||
/**
|
||||
* Walk list of all memzones
|
||||
*
|
||||
* @param func
|
||||
* Iterator function
|
||||
* @param arg
|
||||
* Argument passed to iterator
|
||||
*/
|
||||
void rte_memzone_walk(void (*func)(const struct rte_memzone *, void *arg),
|
||||
void *arg);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user