Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /*
  2  *  linux/lib/kasprintf.c
  3  *
  4  *  Copyright (C) 1991, 1992  Linus Torvalds
  5  */
  6 
  7 #include <stdarg.h>
  8 #include <linux/module.h>
  9 #include <linux/types.h>
 10 #include <linux/string.h>
 11 
 12 /* Simplified asprintf. */
 13 char *kvasprintf(gfp_t gfp, const char *fmt, va_list ap)
 14 {
 15         unsigned int len;
 16         char *p;
 17         va_list aq;
 18 
 19         va_copy(aq, ap);
 20         len = vsnprintf(NULL, 0, fmt, aq);
 21         va_end(aq);
 22 
 23         p = kmalloc(len+1, gfp);
 24         if (!p)
 25                 return NULL;
 26 
 27         vsnprintf(p, len+1, fmt, ap);
 28 
 29         return p;
 30 }
 31 EXPORT_SYMBOL(kvasprintf);
 32 
 33 char *kasprintf(gfp_t gfp, const char *fmt, ...)
 34 {
 35         va_list ap;
 36         char *p;
 37 
 38         va_start(ap, fmt);
 39         p = kvasprintf(gfp, fmt, ap);
 40         va_end(ap);
 41 
 42         return p;
 43 }
 44 EXPORT_SYMBOL(kasprintf);
 45 
  This page was automatically generated by the LXR engine.