mirror of
https://github.com/linux-sunxi/u-boot-sunxi.git
synced 2024-02-12 11:16:03 +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:
@ -583,6 +583,74 @@ const table_entry_t *get_table_entry(const table_entry_t *table, int id)
|
||||
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
|
||||
* @table: pointer to a translation table for entries of a specific type
|
||||
|
Reference in New Issue
Block a user