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:
parent
efeeea3501
commit
773be2a168
|
@ -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 */
|
||||
|
|
24
lib/xfuncs.c
24
lib/xfuncs.c
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue