[PATCH 3/5] dmesg: allow loglevels specified as numbers

Sascha Hauer s.hauer at pengutronix.de
Mon Jun 12 05:32:30 PDT 2023


In Linux dmesg loglevels can be specified as strings or as numbers.
Do likewise in barebox.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 commands/dmesg.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/commands/dmesg.c b/commands/dmesg.c
index 2a36710b98..00e5a159e0 100644
--- a/commands/dmesg.c
+++ b/commands/dmesg.c
@@ -13,6 +13,16 @@
 
 static int str_to_loglevel(const char *str)
 {
+	int ret;
+	unsigned long level;
+
+	ret = kstrtoul(str, 10, &level);
+	if (!ret) {
+		if (level > MSG_VDEBUG)
+			goto unknown;
+		return level;
+	}
+
 	if (!strcmp(str, "vdebug"))
 		return MSG_VDEBUG;
 	if (!strcmp(str, "debug"))
@@ -31,7 +41,7 @@ static int str_to_loglevel(const char *str)
 		return MSG_ALERT;
 	if (!strcmp(str, "emerg"))
 		return MSG_EMERG;
-
+unknown:
 	printf("dmesg: unknown loglevel %s\n", str);
 
 	return -EINVAL;
-- 
2.39.2




More information about the barebox mailing list