[dpdk-dev] [PATCH] librte_cfgfile: add section num entries by index
Bruce Richardson
bruce.richardson at intel.com
Mon Sep 4 12:58:44 CEST 2017
On Thu, Apr 27, 2017 at 12:21:40PM +0530, Guduri Prathyusha wrote:
> rte_cfgfile_section_num_entries_by_index() is added to get the number of
> entries of a section when multiple sections of the same name are
> present.
>
> Signed-off-by: Guduri Prathyusha <gprathyusha at caviumnetworks.com>
Reviewed-by: Bruce Richardson <bruce.richardson at intel.com>
Acked-by: Bruce Richardson <bruce.richardson at intel.com>
> ---
> lib/librte_cfgfile/rte_cfgfile.c | 13 +++++++++++++
> lib/librte_cfgfile/rte_cfgfile.h | 20 ++++++++++++++++++++
> 2 files changed, 33 insertions(+)
>
> diff --git a/lib/librte_cfgfile/rte_cfgfile.c b/lib/librte_cfgfile/rte_cfgfile.c
> index b54a523..2588093 100644
> --- a/lib/librte_cfgfile/rte_cfgfile.c
> +++ b/lib/librte_cfgfile/rte_cfgfile.c
> @@ -408,7 +408,20 @@ int rte_cfgfile_close(struct rte_cfgfile *cfg)
> return s->num_entries;
> }
>
> +int
> +rte_cfgfile_section_num_entries_by_index(struct rte_cfgfile *cfg,
> + char *sectionname, int index)
> +{
> + const struct rte_cfgfile_section *sect;
> +
> + if (index < 0 || index >= cfg->num_sections)
> + return -1;
>
> + sect = cfg->sections[index];
> + snprintf(sectionname, CFG_NAME_LEN, "%s", sect->name);
I don't like the fact that the section name is being overwritten here,
but the behaviour is consistent with that done by the other "by_index()"
functions, so it's probably better to keep this.
In future a change to consider would be remove the sectionname entirely
from the function arguments since it serves no purpose that I can see.
> +
> + return sect->num_entries;
> +}
> int
> rte_cfgfile_section_entries(struct rte_cfgfile *cfg, const char *sectionname,
> struct rte_cfgfile_entry *entries, int max_entries)
> diff --git a/lib/librte_cfgfile/rte_cfgfile.h b/lib/librte_cfgfile/rte_cfgfile.h
> index fa10d40..35dc419 100644
> --- a/lib/librte_cfgfile/rte_cfgfile.h
> +++ b/lib/librte_cfgfile/rte_cfgfile.h
> @@ -184,6 +184,26 @@ int rte_cfgfile_section_num_entries(struct rte_cfgfile *cfg,
> const char *sectionname);
>
> /**
> +* Get number of entries in given config file section
> +*
> +* The index of a section is the same as the index of its name in the
> +* result of rte_cfgfile_sections. This API can be used when there are
> +* multiple sections with the same name.
> +*
> +* @param cfg
> +* Config file
> +* @param sectionname
> +* Section name
> +* @param index
> +* Section index
> +* @return
> +* Number of entries in section on success, -1 otherwise
> +*/
> +int rte_cfgfile_section_num_entries_by_index(struct rte_cfgfile *cfg,
> + char *sectionname,
> + int index);
> +
> +/**
> * Get section entries as key-value pairs
> *
> * If multiple sections have the given name this function operates on the
> --
> 1.7.9.5
>
More information about the dev
mailing list