// SPDX-License-Identifier: GPL-2.0 #include <sys/types.h> #include <linux/kernel.h> #include <stdio.h> int vscnprintf(char *buf, size_t size, const char *fmt, va_list args) { int i = vsnprintf(buf, size, fmt, args); ssize_t ssize = size; return (i >= ssize) ? (ssize - 1) : i; } int scnprintf(char * buf, size_t size, const char * fmt, ...) { ssize_t ssize = size; va_list args; int i; va_start(args, fmt); i = vsnprintf(buf, size, fmt, args); va_end(args); return (i >= ssize) ? (ssize - 1) : i; } int scnprintf_pad(char * buf, size_t size, const char * fmt, ...) { ssize_t ssize = size; va_list args; int i; va_start(args, fmt); i = vscnprintf(buf, size, fmt, args); va_end(args); if (i < (int) size) { for (; i < (int) size; i++) buf[i] = ' '; buf[i] = 0x0; } return (i >= ssize) ? (ssize - 1) : i; }