mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00: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
2 changed files with 102 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -478,6 +478,40 @@ const char *genimg_get_comp_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_arch_id(const char *name);
|
||||
int genimg_get_type_id(const char *name);
|
||||
|
|
Loading…
Reference in a new issue