Print this page
8115 parallel zfs mount
*** 9,25 ****
--- 9,27 ----
* http://www.illumos.org/license/CDDL.
*/
/*
* Copyright 2013 Nexenta Systems, Inc. All rights reserved.
+ * Copyright 2017 RackTop Systems.
*/
#include <sys/kmem.h>
#include <sys/debug.h>
#include <sys/ksynch.h>
#include <sys/systm.h>
+ #include <sys/cmn_err.h>
#include <umem.h>
void abort(void) __NORETURN;
*** 63,73 ****
--- 65,98 ----
kmem_zalloc(size_t size, int kmflags)
{
return (umem_zalloc(size, kmem2umem_flags(kmflags)));
}
+ /*
+ * Do not change the length of the returned string; it must be freed
+ * with strfree().
+ */
+ char *
+ kmem_asprintf(const char *fmt, ...)
+ {
+ int size;
+ va_list adx;
+ char *buf;
+ va_start(adx, fmt);
+ size = vsnprintf(NULL, 0, fmt, adx) + 1;
+ va_end(adx);
+
+ buf = kmem_alloc(size, KM_SLEEP);
+
+ va_start(adx, fmt);
+ size = vsnprintf(buf, size, fmt, adx);
+ va_end(adx);
+
+ return (buf);
+ }
+
void
kmem_free(void *buf, size_t size)
{
umem_free(buf, size);
}