// SPDX-License-Identifier: GPL-2.01/*2* arch/alpha/lib/srm_printk.c3*/45#include <linux/kernel.h>6#include <asm/console.h>78long9srm_printk(const char *fmt, ...)10{11static char buf[1024];12va_list args;13long len, num_lf;14char *src, *dst;1516va_start(args, fmt);17len = vsprintf(buf, fmt, args);18va_end(args);1920/* count number of linefeeds in string: */2122num_lf = 0;23for (src = buf; *src; ++src) {24if (*src == '\n') {25++num_lf;26}27}2829if (num_lf) {30/* expand each linefeed into carriage-return/linefeed: */31for (dst = src + num_lf; src >= buf; ) {32if (*src == '\n') {33*dst-- = '\r';34}35*dst-- = *src--;36}37}3839srm_puts(buf, num_lf+len);40return len;41}424344