]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - lib/vsprintf.c
smaps: extract pmd walker from smaps code
[linux-2.6-omap-h63xx.git] / lib / vsprintf.c
index 44f0e339a9474cd9499d13177a8ae823a172951f..cbab1df150cfed43bcbd4beeb8d40fe15e7042b5 100644 (file)
@@ -554,8 +554,7 @@ EXPORT_SYMBOL(snprintf);
  * @...: Arguments for the format string
  *
  * The return value is the number of characters written into @buf not including
- * the trailing '\0'. If @size is <= 0 the function returns 0. If the return is
- * greater than or equal to @size, the resulting string is truncated.
+ * the trailing '\0'. If @size is <= 0 the function returns 0.
  */
 
 int scnprintf(char * buf, size_t size, const char *fmt, ...)
@@ -852,23 +851,35 @@ EXPORT_SYMBOL(sscanf);
 
 
 /* Simplified asprintf. */
-char *kasprintf(gfp_t gfp, const char *fmt, ...)
+char *kvasprintf(gfp_t gfp, const char *fmt, va_list ap)
 {
-       va_list ap;
        unsigned int len;
        char *p;
+       va_list aq;
 
-       va_start(ap, fmt);
-       len = vsnprintf(NULL, 0, fmt, ap);
-       va_end(ap);
+       va_copy(aq, ap);
+       len = vsnprintf(NULL, 0, fmt, aq);
+       va_end(aq);
 
        p = kmalloc(len+1, gfp);
        if (!p)
                return NULL;
-       va_start(ap, fmt);
+
        vsnprintf(p, len+1, fmt, ap);
-       va_end(ap);
+
        return p;
 }
+EXPORT_SYMBOL(kvasprintf);
+
+char *kasprintf(gfp_t gfp, const char *fmt, ...)
+{
+       va_list ap;
+       char *p;
 
+       va_start(ap, fmt);
+       p = kvasprintf(gfp, fmt, ap);
+       va_end(ap);
+
+       return p;
+}
 EXPORT_SYMBOL(kasprintf);