diff --git a/common/image.c b/common/image.c index 645bfef169..4fc4a0f1c4 100644 --- a/common/image.c +++ b/common/image.c @@ -858,6 +858,24 @@ const char *genimg_get_cat_desc(enum ih_category category) return table_info[category].desc; } +/** + * genimg_cat_has_id - check whether category has entry id + * @category: category to look up (enum ih_category) + * @id: entry id to be checked + * + * This will scan the translation table trying to find the entry that matches + * the given id. + * + * @return true if category has entry id; false if not + */ +bool genimg_cat_has_id(enum ih_category category, uint id) +{ + if (get_table_entry(table_info[category].table, id)) + return true; + + return false; +} + /** * get_table_entry_name - translate entry id to long name * @table: pointer to a translation table for entries of a specific type diff --git a/include/image.h b/include/image.h index 10995b8e24..00f774f837 100644 --- a/include/image.h +++ b/include/image.h @@ -568,6 +568,15 @@ int genimg_get_cat_count(enum ih_category category); */ const char *genimg_get_cat_desc(enum ih_category category); +/** + * genimg_cat_has_id() - Check whether a category has an item + * + * @category: Category to check + * @id: Item ID + * @return true or false as to whether a category has an item + */ +bool genimg_cat_has_id(enum ih_category category, uint id); + int genimg_get_os_id(const char *name); int genimg_get_arch_id(const char *name); int genimg_get_type_id(const char *name);