It can be useful to dump the log into the file, e.g. when doing an update from a USB flash drive with no serial peer attached. Board code could use log_dprint to dump the log onto the drive. Add a function to facilitate this. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- common/console_common.c | 15 +++++++++++++++ include/printk.h | 1 + 2 files changed, 16 insertions(+) diff --git a/common/console_common.c b/common/console_common.c index 3e0741572398..77ad4728fbfd 100644 --- a/common/console_common.c +++ b/common/console_common.c @@ -182,6 +182,21 @@ static int console_common_init(void) } device_initcall(console_common_init); +int log_dprint(int fd) +{ + struct log_entry *log; + int nbytes = 0; + + list_for_each_entry(log, &barebox_logbuf, list) { + int ret = dputs(fd, log->msg); + if (ret < 0) + return ret; + nbytes += ret; + } + + return nbytes; +} + void log_print(unsigned flags, unsigned levels) { struct log_entry *log; diff --git a/include/printk.h b/include/printk.h index 94a25ec9ebac..798acfdbf188 100644 --- a/include/printk.h +++ b/include/printk.h @@ -141,6 +141,7 @@ extern void log_clean(unsigned int limit); #define BAREBOX_LOG_PRINT_ALERT BIT(1) #define BAREBOX_LOG_PRINT_EMERG BIT(0) +int log_dprint(int fd); void log_print(unsigned flags, unsigned levels); struct va_format { -- 2.29.2 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox