9
0
Fork 0

xfuncs: add xasprintf() and xvasprintf()

Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Michael Olbrich 2015-07-17 21:22:34 +02:00 committed by Sascha Hauer
parent efeeea3501
commit 773be2a168
2 changed files with 27 additions and 0 deletions

View File

@ -2,6 +2,7 @@
#define __XFUNCS_H
#include <linux/types.h>
#include <stdarg.h>
void *xmalloc(size_t size);
void *xrealloc(void *ptr, size_t size);
@ -10,5 +11,7 @@ char *xstrdup(const char *s);
char *xstrndup(const char *s, size_t size);
void* xmemalign(size_t alignment, size_t bytes);
void* xmemdup(const void *orig, size_t size);
char *xasprintf(const char *fmt, ...) __attribute__ ((format(__printf__, 1, 2)));
char *xvasprintf(const char *fmt, va_list ap);
#endif /* __XFUNCS_H */

View File

@ -103,3 +103,27 @@ void *xmemdup(const void *orig, size_t size)
return buf;
}
EXPORT_SYMBOL(xmemdup);
char *xvasprintf(const char *fmt, va_list ap)
{
char *p;
p = vasprintf(fmt, ap);
if (!p)
panic("ERROR: out of memory\n");
return p;
}
EXPORT_SYMBOL(xvasprintf);
char *xasprintf(const char *fmt, ...)
{
va_list ap;
char *p;
va_start(ap, fmt);
p = xvasprintf(fmt, ap);
va_end(ap);
return p;
}
EXPORT_SYMBOL(xasprintf);