cmd: log: Add commands to list categories and drivers
This allows users to query which categories and drivers are available on their system. This allows them to construct filter-add commands without (e.g.) adjusting the log format to show categories and drivers. Signed-off-by: Sean Anderson <seanga2@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
fed9c2fbc9
commit
1c593a105a
35
cmd/log.c
35
cmd/log.c
@ -47,6 +47,37 @@ static int do_log_level(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||
return CMD_RET_SUCCESS;
|
||||
}
|
||||
|
||||
static int do_log_categories(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||
char *const argv[])
|
||||
{
|
||||
enum log_category_t cat;
|
||||
const char *name;
|
||||
|
||||
for (cat = LOGC_FIRST; cat < LOGC_COUNT; cat++) {
|
||||
name = log_get_cat_name(cat);
|
||||
/*
|
||||
* Invalid category names (e.g. <invalid> or <missing>) begin
|
||||
* with '<'.
|
||||
*/
|
||||
if (name[0] == '<')
|
||||
continue;
|
||||
printf("%s\n", name);
|
||||
}
|
||||
|
||||
return CMD_RET_SUCCESS;
|
||||
}
|
||||
|
||||
static int do_log_drivers(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||
char *const argv[])
|
||||
{
|
||||
struct log_device *ldev;
|
||||
|
||||
list_for_each_entry(ldev, &gd->log_head, sibling_node)
|
||||
printf("%s\n", ldev->drv->name);
|
||||
|
||||
return CMD_RET_SUCCESS;
|
||||
}
|
||||
|
||||
static int do_log_format(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||
char *const argv[])
|
||||
{
|
||||
@ -123,6 +154,8 @@ static int do_log_rec(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||
#ifdef CONFIG_SYS_LONGHELP
|
||||
static char log_help_text[] =
|
||||
"level - get/set log level\n"
|
||||
"categories - list log categories\n"
|
||||
"drivers - list log drivers\n"
|
||||
"log format <fmt> - set log output format. <fmt> is a string where\n"
|
||||
"\teach letter indicates something that should be displayed:\n"
|
||||
"\tc=category, l=level, F=file, L=line number, f=function, m=msg\n"
|
||||
@ -134,6 +167,8 @@ static char log_help_text[] =
|
||||
|
||||
U_BOOT_CMD_WITH_SUBCMDS(log, "log system", log_help_text,
|
||||
U_BOOT_SUBCMD_MKENT(level, 2, 1, do_log_level),
|
||||
U_BOOT_SUBCMD_MKENT(categories, 1, 1, do_log_categories),
|
||||
U_BOOT_SUBCMD_MKENT(drivers, 1, 1, do_log_drivers),
|
||||
U_BOOT_SUBCMD_MKENT(format, 2, 1, do_log_format),
|
||||
U_BOOT_SUBCMD_MKENT(rec, 7, 1, do_log_rec),
|
||||
);
|
||||
|
@ -411,8 +411,9 @@ struct log_filter {
|
||||
* log_get_cat_name() - Get the name of a category
|
||||
*
|
||||
* @cat: Category to look up
|
||||
* @return category name (which may be a uclass driver name) if found, or
|
||||
* "<invalid>" if invalid, or "<missing>" if not found
|
||||
* @return: category name (which may be a uclass driver name) if found, or
|
||||
* "<invalid>" if invalid, or "<missing>" if not found. All error
|
||||
* responses begin with '<'.
|
||||
*/
|
||||
const char *log_get_cat_name(enum log_category_t cat);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user