cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

srm_printk.c (692B)


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