dmesg open codes functionality to convert a string to a loglevel. Make a separate function from it which will be useful in the next patch. While at it remove the BAREBOX_LOG_PRINT_* defines and use MSG_* defines directly. Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> --- commands/dmesg.c | 47 ++++++++++++++++++++++++++---------------- include/linux/printk.h | 10 --------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/commands/dmesg.c b/commands/dmesg.c index 15ad449639..339910bb76 100644 --- a/commands/dmesg.c +++ b/commands/dmesg.c @@ -11,6 +11,30 @@ #include <getopt.h> #include <clock.h> +static int str_to_loglevel(const char *str) +{ + if (!strcmp(str, "vdebug")) + return MSG_VDEBUG; + if (!strcmp(str, "debug")) + return MSG_DEBUG; + if (!strcmp(str, "info")) + return MSG_INFO; + if (!strcmp(str, "notice")) + return MSG_NOTICE; + if (!strcmp(str, "warn")) + return MSG_WARNING; + if (!strcmp(str, "err")) + return MSG_ERR; + if (!strcmp(str, "crit")) + return MSG_CRIT; + if (!strcmp(str, "alert")) + return MSG_ALERT; + if (!strcmp(str, "emerg")) + return MSG_EMERG; + + return -EINVAL; +} + static unsigned dmesg_get_levels(const char *__args) { char *args = xstrdup(__args); @@ -18,28 +42,15 @@ static unsigned dmesg_get_levels(const char *__args) unsigned flags = 0; while (1) { + int level; + str = strsep(&levels, ","); if (!str) break; - if(!strcmp(str, "vdebug")) - flags |= BAREBOX_LOG_PRINT_VDEBUG; - else if(!strcmp(str, "debug")) - flags |= BAREBOX_LOG_PRINT_DEBUG; - else if(!strcmp(str, "info")) - flags |= BAREBOX_LOG_PRINT_INFO; - else if(!strcmp(str, "notice")) - flags |= BAREBOX_LOG_PRINT_NOTICE; - else if(!strcmp(str, "warn")) - flags |= BAREBOX_LOG_PRINT_WARNING; - else if(!strcmp(str, "err")) - flags |= BAREBOX_LOG_PRINT_ERR; - else if(!strcmp(str, "crit")) - flags |= BAREBOX_LOG_PRINT_CRIT; - else if(!strcmp(str, "alert")) - flags |= BAREBOX_LOG_PRINT_ALERT; - else if(!strcmp(str, "emerg")) - flags |= BAREBOX_LOG_PRINT_EMERG; + level = str_to_loglevel(str); + if (level >= 0) + flags |= BIT(level); } free(args); diff --git a/include/linux/printk.h b/include/linux/printk.h index 42c29e04dd..057b355aa1 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -159,16 +159,6 @@ extern void log_clean(unsigned int limit); #define BAREBOX_LOG_DIFF_TIME BIT(1) #define BAREBOX_LOG_PRINT_TIME BIT(0) -#define BAREBOX_LOG_PRINT_VDEBUG BIT(8) -#define BAREBOX_LOG_PRINT_DEBUG BIT(7) -#define BAREBOX_LOG_PRINT_INFO BIT(6) -#define BAREBOX_LOG_PRINT_NOTICE BIT(5) -#define BAREBOX_LOG_PRINT_WARNING BIT(4) -#define BAREBOX_LOG_PRINT_ERR BIT(3) -#define BAREBOX_LOG_PRINT_CRIT BIT(2) -#define BAREBOX_LOG_PRINT_ALERT BIT(1) -#define BAREBOX_LOG_PRINT_EMERG BIT(0) - int log_writefile(const char *filepath); void log_print(unsigned flags, unsigned levels); -- 2.39.2