Linux-2.6.12-rc2
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / alpha / lib / srm_printk.c
1 /*
2 * arch/alpha/lib/srm_printk.c
3 */
4
5 #include <linux/kernel.h>
6 #include <asm/console.h>
7
8 long
9 srm_printk(const char *fmt, ...)
10 {
11 static char buf[1024];
12 va_list args;
13 long len, num_lf;
14 char *src, *dst;
15
16 va_start(args, fmt);
17 len = vsprintf(buf, fmt, args);
18 va_end(args);
19
20 /* count number of linefeeds in string: */
21
22 num_lf = 0;
23 for (src = buf; *src; ++src) {
24 if (*src == '\n') {
25 ++num_lf;
26 }
27 }
28
29 if (num_lf) {
30 /* expand each linefeed into carriage-return/linefeed: */
31 for (dst = src + num_lf; src >= buf; ) {
32 if (*src == '\n') {
33 *dst-- = '\r';
34 }
35 *dst-- = *src--;
36 }
37 }
38
39 srm_puts(buf, num_lf+len);
40 return len;
41 }