Re: [PATCH v4 14/22] cmd: log: Split off log level parsing

2020-10-30 Thread Tom Rini
On Tue, Oct 27, 2020 at 07:55:33PM -0400, Sean Anderson wrote:

> Move parsing of log level into its own function so it can be re-used. This
> also adds support for using log level names instead of just the integer
> equivalent.
> 
> Signed-off-by: Sean Anderson 
> Reviewed-by: Simon Glass 

Applied to u-boot/master, thanks!

-- 
Tom


signature.asc
Description: PGP signature


[PATCH v4 14/22] cmd: log: Split off log level parsing

2020-10-27 Thread Sean Anderson
Move parsing of log level into its own function so it can be re-used. This
also adds support for using log level names instead of just the integer
equivalent.

Signed-off-by: Sean Anderson 
Reviewed-by: Simon Glass 
---

(no changes since v2)

Changes in v2:
- Print an error message if the log level is invalid.

 cmd/log.c | 29 +++--
 1 file changed, 23 insertions(+), 6 deletions(-)

diff --git a/cmd/log.c b/cmd/log.c
index 82e3a7b62f..651e50358c 100644
--- a/cmd/log.c
+++ b/cmd/log.c
@@ -11,23 +11,40 @@
 
 static char log_fmt_chars[LOGF_COUNT] = "clFLfm";
 
+static enum log_level_t parse_log_level(char *const arg)
+{
+   enum log_level_t ret;
+   ulong level;
+
+   if (!strict_strtoul(arg, 10, )) {
+   if (level > _LOG_MAX_LEVEL) {
+   printf("Only log levels <= %d are supported\n",
+  _LOG_MAX_LEVEL);
+   return LOGL_NONE;
+   }
+   return level;
+   }
+
+   ret = log_get_level_by_name(arg);
+   if (ret == LOGL_NONE)
+   printf("Unknown log level \"%s\"\n", arg);
+   return ret;
+}
+
 static int do_log_level(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
 {
if (argc > 1) {
-   long log_level = simple_strtol(argv[1], NULL, 10);
+   enum log_level_t log_level = parse_log_level(argv[1]);
 
-   if (log_level < 0 || log_level > _LOG_MAX_LEVEL) {
-   printf("Only log levels <= %d are supported\n",
-  _LOG_MAX_LEVEL);
+   if (log_level == LOGL_NONE)
return CMD_RET_FAILURE;
-   }
gd->default_log_level = log_level;
} else {
printf("Default log level: %d\n", gd->default_log_level);
}
 
-   return 0;
+   return CMD_RET_SUCCESS;
 }
 
 static int do_log_format(struct cmd_tbl *cmdtp, int flag, int argc,
-- 
2.28.0