/*1* arch/alpha/lib/srm_printk.c2*/34#include <linux/kernel.h>5#include <asm/console.h>67long8srm_printk(const char *fmt, ...)9{10static char buf[1024];11va_list args;12long len, num_lf;13char *src, *dst;1415va_start(args, fmt);16len = vsprintf(buf, fmt, args);17va_end(args);1819/* count number of linefeeds in string: */2021num_lf = 0;22for (src = buf; *src; ++src) {23if (*src == '\n') {24++num_lf;25}26}2728if (num_lf) {29/* expand each linefeed into carriage-return/linefeed: */30for (dst = src + num_lf; src >= buf; ) {31if (*src == '\n') {32*dst-- = '\r';33}34*dst-- = *src--;35}36}3738srm_puts(buf, num_lf+len);39return len;40}414243