xref: /openbmc/linux/tools/lib/vsprintf.c (revision d0761e37)
1d0761e37SArnaldo Carvalho de Melo #include <sys/types.h>
2d0761e37SArnaldo Carvalho de Melo #include <linux/kernel.h>
3d0761e37SArnaldo Carvalho de Melo #include <stdio.h>
4d0761e37SArnaldo Carvalho de Melo 
5d0761e37SArnaldo Carvalho de Melo int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
6d0761e37SArnaldo Carvalho de Melo {
7d0761e37SArnaldo Carvalho de Melo        int i = vsnprintf(buf, size, fmt, args);
8d0761e37SArnaldo Carvalho de Melo        ssize_t ssize = size;
9d0761e37SArnaldo Carvalho de Melo 
10d0761e37SArnaldo Carvalho de Melo        return (i >= ssize) ? (ssize - 1) : i;
11d0761e37SArnaldo Carvalho de Melo }
12d0761e37SArnaldo Carvalho de Melo 
13d0761e37SArnaldo Carvalho de Melo int scnprintf(char * buf, size_t size, const char * fmt, ...)
14d0761e37SArnaldo Carvalho de Melo {
15d0761e37SArnaldo Carvalho de Melo        ssize_t ssize = size;
16d0761e37SArnaldo Carvalho de Melo        va_list args;
17d0761e37SArnaldo Carvalho de Melo        int i;
18d0761e37SArnaldo Carvalho de Melo 
19d0761e37SArnaldo Carvalho de Melo        va_start(args, fmt);
20d0761e37SArnaldo Carvalho de Melo        i = vsnprintf(buf, size, fmt, args);
21d0761e37SArnaldo Carvalho de Melo        va_end(args);
22d0761e37SArnaldo Carvalho de Melo 
23d0761e37SArnaldo Carvalho de Melo        return (i >= ssize) ? (ssize - 1) : i;
24d0761e37SArnaldo Carvalho de Melo }
25