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

vsprintf.c (900B)


      1// SPDX-License-Identifier: GPL-2.0
      2#include <sys/types.h>
      3#include <linux/kernel.h>
      4#include <stdio.h>
      5
      6int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
      7{
      8       int i = vsnprintf(buf, size, fmt, args);
      9       ssize_t ssize = size;
     10
     11       return (i >= ssize) ? (ssize - 1) : i;
     12}
     13
     14int scnprintf(char * buf, size_t size, const char * fmt, ...)
     15{
     16       ssize_t ssize = size;
     17       va_list args;
     18       int i;
     19
     20       va_start(args, fmt);
     21       i = vsnprintf(buf, size, fmt, args);
     22       va_end(args);
     23
     24       return (i >= ssize) ? (ssize - 1) : i;
     25}
     26
     27int scnprintf_pad(char * buf, size_t size, const char * fmt, ...)
     28{
     29	ssize_t ssize = size;
     30	va_list args;
     31	int i;
     32
     33	va_start(args, fmt);
     34	i = vscnprintf(buf, size, fmt, args);
     35	va_end(args);
     36
     37	if (i < (int) size) {
     38		for (; i < (int) size; i++)
     39			buf[i] = ' ';
     40		buf[i] = 0x0;
     41	}
     42
     43	return (i >= ssize) ? (ssize - 1) : i;
     44}