From: Guduri Prathyusha Date: Thu, 27 Apr 2017 06:51:40 +0000 (+0530) Subject: cfgfile: add section number of entries by index X-Git-Tag: spdx-start~2153 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=3d2e0448ebb5;p=dpdk.git cfgfile: add section number of entries by index 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 Reviewed-by: Bruce Richardson Acked-by: Bruce Richardson --- diff --git a/lib/librte_cfgfile/rte_cfgfile.c b/lib/librte_cfgfile/rte_cfgfile.c index b54a523d2c..258809373a 100644 --- a/lib/librte_cfgfile/rte_cfgfile.c +++ b/lib/librte_cfgfile/rte_cfgfile.c @@ -408,7 +408,20 @@ rte_cfgfile_section_num_entries(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); + + 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 fa10d40892..35dc419e11 100644 --- a/lib/librte_cfgfile/rte_cfgfile.h +++ b/lib/librte_cfgfile/rte_cfgfile.h @@ -183,6 +183,26 @@ int rte_cfgfile_has_section(struct rte_cfgfile *cfg, const char *sectionname); 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 *