• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // SPDX-License-Identifier: GPL-2.0+
2 
3 #include <common.h>
4 #include "brcmnand_compat.h"
5 
devm_kvasprintf(struct udevice * dev,gfp_t gfp,const char * fmt,va_list ap)6 static char *devm_kvasprintf(struct udevice *dev, gfp_t gfp, const char *fmt,
7 			     va_list ap)
8 {
9 	unsigned int len;
10 	char *p;
11 	va_list aq;
12 
13 	va_copy(aq, ap);
14 	len = vsnprintf(NULL, 0, fmt, aq);
15 	va_end(aq);
16 
17 	p = devm_kmalloc(dev, len + 1, gfp);
18 	if (!p)
19 		return NULL;
20 
21 	vsnprintf(p, len + 1, fmt, ap);
22 
23 	return p;
24 }
25 
devm_kasprintf(struct udevice * dev,gfp_t gfp,const char * fmt,...)26 char *devm_kasprintf(struct udevice *dev, gfp_t gfp, const char *fmt, ...)
27 {
28 	va_list ap;
29 	char *p;
30 
31 	va_start(ap, fmt);
32 	p = devm_kvasprintf(dev, gfp, fmt, ap);
33 	va_end(ap);
34 
35 	return p;
36 }
37