From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Glass Date: Mon, 20 Nov 2017 15:33:30 -0700 Subject: [U-Boot] [PATCH v3 09/14] log: Add a 'log level' command In-Reply-To: <20171120223335.45852-1-sjg@chromium.org> References: <20171120223335.45852-1-sjg@chromium.org> Message-ID: <20171120223335.45852-10-sjg@chromium.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Add a command for adjusting the log level. Signed-off-by: Simon Glass Reviewed-by: Bin Meng --- Changes in v3: None Changes in v2: None cmd/Kconfig | 7 +++++++ cmd/Makefile | 1 + cmd/log.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 cmd/log.c diff --git a/cmd/Kconfig b/cmd/Kconfig index 5a6afab99b7..b745a7e977a 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1502,6 +1502,13 @@ config CMD_KGDB single-stepping, inspecting variables, etc. This is supported only on PowerPC at present. +config CMD_LOG + bool "log - Generation, control and access to logging" + help + This provides access to logging features. It allows the output of + log data to be controlled to a limited extent (setting up the default + maximum log level for emitting of records). + config CMD_TRACE bool "trace - Support tracing of function calls and timing" help diff --git a/cmd/Makefile b/cmd/Makefile index f9eb76090d6..00e38696daa 100644 --- a/cmd/Makefile +++ b/cmd/Makefile @@ -76,6 +76,7 @@ obj-$(CONFIG_LED_STATUS_CMD) += legacy_led.o obj-$(CONFIG_CMD_LED) += led.o obj-$(CONFIG_CMD_LICENSE) += license.o obj-y += load.o +obj-$(CONFIG_CMD_LOG) += log.o obj-$(CONFIG_ID_EEPROM) += mac.o obj-$(CONFIG_CMD_MD5SUM) += md5sum.o obj-$(CONFIG_CMD_MEMORY) += mem.o diff --git a/cmd/log.c b/cmd/log.c new file mode 100644 index 00000000000..44e04ab16a8 --- /dev/null +++ b/cmd/log.c @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2017 Google, Inc + * Written by Simon Glass + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include +#include + +static int do_log_level(cmd_tbl_t *cmdtp, int flag, int argc, + char * const argv[]) +{ + if (argc > 1) + gd->default_log_level = simple_strtol(argv[1], NULL, 10); + else + printf("Default log level: %d\n", gd->default_log_level); + + return 0; +} + +static cmd_tbl_t log_sub[] = { + U_BOOT_CMD_MKENT(level, CONFIG_SYS_MAXARGS, 1, do_log_level, "", ""), +}; + +static int do_log(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +{ + cmd_tbl_t *cp; + + if (argc < 2) + return CMD_RET_USAGE; + + /* drop initial "log" arg */ + argc--; + argv++; + + cp = find_cmd_tbl(argv[0], log_sub, ARRAY_SIZE(log_sub)); + if (cp) + return cp->cmd(cmdtp, flag, argc, argv); + + return CMD_RET_USAGE; +} + +#ifdef CONFIG_SYS_LONGHELP +static char log_help_text[] = + "level - get/set log level\n" + ; +#endif + +U_BOOT_CMD( + log, CONFIG_SYS_MAXARGS, 1, do_log, + "log system", log_help_text +); -- 2.15.0.448.gf294e3d99a-goog