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;
}