[PATCH 4/5] dmesg: implement dmesg -n
Marco Felsch
m.felsch at pengutronix.de
Mon Jun 12 23:45:18 PDT 2023
Hi Sascha,
On 23-06-12, Sascha Hauer wrote:
> Under Linux dmesg -n can be used to set the console loglevel. Implement
> the same for barebox.
>
> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> ---
> commands/dmesg.c | 18 +++++++++++++++++-
> 1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/commands/dmesg.c b/commands/dmesg.c
> index 00e5a159e0..953bdb2068 100644
> --- a/commands/dmesg.c
> +++ b/commands/dmesg.c
> @@ -77,8 +77,9 @@ static int do_dmesg(int argc, char *argv[])
> int opt, i;
> int delete_buf = 0, emit = 0;
> unsigned flags = 0, levels = 0;
> + char *set = NULL;
>
> - while ((opt = getopt(argc, argv, "ctderl:")) > 0) {
> + while ((opt = getopt(argc, argv, "ctderl:n:")) > 0) {
> switch (opt) {
> case 'c':
> delete_buf = 1;
> @@ -100,11 +101,25 @@ static int do_dmesg(int argc, char *argv[])
> case 'r':
> flags |= BAREBOX_LOG_PRINT_RAW | BAREBOX_LOG_PRINT_TIME;
> break;
> + case 'n':
> + set = optarg;
> + break;
> default:
> return COMMAND_ERROR_USAGE;
> }
> }
>
> + if (set) {
> + int level = str_to_loglevel(set);
> +
> + if (level < 0)
> + return COMMAND_ERROR;
> +
> + barebox_loglevel = level;
Not really realted to this patch, but should we make 'barebox_loglevel'
private and use a setter like console_set_loglevel()? Asking because
console_common.c is the currently the only upstream user.
Regards,
Marco
> +
> + return 0;
> + }
> +
> if (emit) {
> char *buf;
> int len = 0;
> @@ -145,6 +160,7 @@ BAREBOX_CMD_HELP_OPT ("-c", "Delete messages after printing them")
> BAREBOX_CMD_HELP_OPT ("-d", "Show a time delta to the last message")
> BAREBOX_CMD_HELP_OPT ("-e <msg>", "Emit a log message")
> BAREBOX_CMD_HELP_OPT ("-l <vdebug|debug|info|notice|warn|err|crit|alert|emerg>", "Restrict output to the given (comma-separated) list of levels")
> +BAREBOX_CMD_HELP_OPT ("-n <loglevel>", "Set level at which printing of messages is done to the console")
> BAREBOX_CMD_HELP_OPT ("-r", "Print timestamp and log-level prefixes.")
> BAREBOX_CMD_HELP_OPT ("-t", "Show timestamp informations")
> BAREBOX_CMD_HELP_END
> --
> 2.39.2
>
>
>
More information about the barebox
mailing list