Module Name: src Committed By: riastradh Date: Mon Aug 27 06:53:55 UTC 2018
Modified Files: src/sys/external/bsd/common/include/linux: kernel.h Log Message: Add kvasprintf to <linux/kernel.h>. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/external/bsd/common/include/linux/kernel.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/external/bsd/common/include/linux/kernel.h diff -u src/sys/external/bsd/common/include/linux/kernel.h:1.14 src/sys/external/bsd/common/include/linux/kernel.h:1.15 --- src/sys/external/bsd/common/include/linux/kernel.h:1.14 Mon Aug 27 06:46:55 2018 +++ src/sys/external/bsd/common/include/linux/kernel.h Mon Aug 27 06:53:55 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: kernel.h,v 1.14 2018/08/27 06:46:55 riastradh Exp $ */ +/* $NetBSD: kernel.h,v 1.15 2018/08/27 06:53:55 riastradh Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -180,27 +180,32 @@ kstrtol(const char *s, unsigned base, lo return 0; } -static inline char * __printflike(2,3) -kasprintf(gfp_t gfp, const char *fmt, ...) +static inline char * +kvasprintf(gfp_t gfp, const char *fmt, va_list va) { - va_list va; char *str; int len, len1 __diagused; - va_start(va, fmt); len = vsnprintf(NULL, 0, fmt, va); - va_end(va); - str = kmalloc(len + 1, gfp); if (str == NULL) return NULL; + len1 = vsnprintf(str, len + 1, fmt, va); + KASSERT(len1 == len); + + return str; +} + +static inline char * __printflike(2,3) +kasprintf(gfp_t gfp, const char *fmt, ...) +{ + va_list va; + char *str; va_start(va, fmt); - len1 = vsnprintf(str, len + 1, fmt, va); + str = kvasprintf(gfp, fmt, va); va_end(va); - KASSERT(len1 == len); - return str; }