linux/lib/kasprintf.c
<<
>>
Prefs
   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. */
  13char *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}
  31EXPORT_SYMBOL(kvasprintf);
  32
  33char *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}
  44EXPORT_SYMBOL(kasprintf);
  45
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.