mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-28 23:23:30 +08:00
image: Add functions to obtain category information
Add generic functions which can look up information about a category: - the number of items in the category - the category description - an item long time - an item short time Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
30495bff35
commit
1426220b0e
@ -583,6 +583,74 @@ const table_entry_t *get_table_entry(const table_entry_t *table, int id)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *unknown_msg(enum ih_category category)
|
||||||
|
{
|
||||||
|
static char msg[30];
|
||||||
|
|
||||||
|
strcpy(msg, "Unknown ");
|
||||||
|
strcat(msg, table_info[category].desc);
|
||||||
|
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get_cat_table_entry_name - translate entry id to long name
|
||||||
|
* @category: category to look up (enum ih_category)
|
||||||
|
* @id: entry id to be translated
|
||||||
|
*
|
||||||
|
* This will scan the translation table trying to find the entry that matches
|
||||||
|
* the given id.
|
||||||
|
*
|
||||||
|
* @retur long entry name if translation succeeds; error string on failure
|
||||||
|
*/
|
||||||
|
const char *genimg_get_cat_name(enum ih_category category, uint id)
|
||||||
|
{
|
||||||
|
const table_entry_t *entry;
|
||||||
|
|
||||||
|
entry = get_table_entry(table_info[category].table, id);
|
||||||
|
if (!entry)
|
||||||
|
return unknown_msg(category);
|
||||||
|
#if defined(USE_HOSTCC) || !defined(CONFIG_NEEDS_MANUAL_RELOC)
|
||||||
|
return entry->lname;
|
||||||
|
#else
|
||||||
|
return entry->lname + gd->reloc_off;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get_cat_table_entry_short_name - translate entry id to short name
|
||||||
|
* @category: category to look up (enum ih_category)
|
||||||
|
* @id: entry id to be translated
|
||||||
|
*
|
||||||
|
* This will scan the translation table trying to find the entry that matches
|
||||||
|
* the given id.
|
||||||
|
*
|
||||||
|
* @retur short entry name if translation succeeds; error string on failure
|
||||||
|
*/
|
||||||
|
const char *genimg_get_cat_short_name(enum ih_category category, uint id)
|
||||||
|
{
|
||||||
|
const table_entry_t *entry;
|
||||||
|
|
||||||
|
entry = get_table_entry(table_info[category].table, id);
|
||||||
|
if (!entry)
|
||||||
|
return unknown_msg(category);
|
||||||
|
#if defined(USE_HOSTCC) || !defined(CONFIG_NEEDS_MANUAL_RELOC)
|
||||||
|
return entry->sname;
|
||||||
|
#else
|
||||||
|
return entry->sname + gd->reloc_off;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
int genimg_get_cat_count(enum ih_category category)
|
||||||
|
{
|
||||||
|
return table_info[category].count;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *genimg_get_cat_desc(enum ih_category category)
|
||||||
|
{
|
||||||
|
return table_info[category].desc;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get_table_entry_name - translate entry id to long name
|
* get_table_entry_name - translate entry id to long name
|
||||||
* @table: pointer to a translation table for entries of a specific type
|
* @table: pointer to a translation table for entries of a specific type
|
||||||
|
@ -478,6 +478,40 @@ const char *genimg_get_comp_name(uint8_t comp);
|
|||||||
*/
|
*/
|
||||||
const char *genimg_get_comp_short_name(uint8_t comp);
|
const char *genimg_get_comp_short_name(uint8_t comp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* genimg_get_cat_name() - Get the name of an item in a category
|
||||||
|
*
|
||||||
|
* @category: Category of item
|
||||||
|
* @id: Item ID
|
||||||
|
* @return name of item, or "Unknown ..." if unknown
|
||||||
|
*/
|
||||||
|
const char *genimg_get_cat_name(enum ih_category category, uint id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* genimg_get_cat_short_name() - Get the short name of an item in a category
|
||||||
|
*
|
||||||
|
* @category: Category of item
|
||||||
|
* @id: Item ID
|
||||||
|
* @return short name of item, or "Unknown ..." if unknown
|
||||||
|
*/
|
||||||
|
const char *genimg_get_cat_short_name(enum ih_category category, uint id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* genimg_get_cat_count() - Get the number of items in a category
|
||||||
|
*
|
||||||
|
* @category: Category to check
|
||||||
|
* @return the number of items in the category (IH_xxx_COUNT)
|
||||||
|
*/
|
||||||
|
int genimg_get_cat_count(enum ih_category category);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* genimg_get_cat_desc() - Get the description of a category
|
||||||
|
*
|
||||||
|
* @return the description of a category, e.g. "architecture". This
|
||||||
|
* effectively converts the enum to a string.
|
||||||
|
*/
|
||||||
|
const char *genimg_get_cat_desc(enum ih_category category);
|
||||||
|
|
||||||
int genimg_get_os_id(const char *name);
|
int genimg_get_os_id(const char *name);
|
||||||
int genimg_get_arch_id(const char *name);
|
int genimg_get_arch_id(const char *name);
|
||||||
int genimg_get_type_id(const char *name);
|
int genimg_get_type_id(const char *name);
|
||||||
|
Loading…
Reference in New Issue
Block a user