From 3d2e0448ebb5c76fda6e988558793c070c3baded Mon Sep 17 00:00:00 2001 From: Guduri Prathyusha Date: Thu, 27 Apr 2017 12:21:40 +0530 Subject: [PATCH] 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 --- 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 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 * -- 2.20.1