From b23fab8e20f28f83b51a0cf64a921e817375fce3 Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Mon, 27 Nov 2006 13:50:02 +0000 Subject: [LINUX] Import kasprintf patch from upstream. kasprintf has been merged upstream with a slightly different protoype to the one in Xen. Import this patch and fixup the Xen tree to fit. Signed-off-by: Ian Campbell --- .../linux-2.6/compat-include/xen/platform-compat.h | 5 +++++ .../linux-2.6/platform-pci/platform-compat.c | 23 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) (limited to 'unmodified_drivers') diff --git a/unmodified_drivers/linux-2.6/compat-include/xen/platform-compat.h b/unmodified_drivers/linux-2.6/compat-include/xen/platform-compat.h index ea0e6b308f..4a5aa7f9f9 100644 --- a/unmodified_drivers/linux-2.6/compat-include/xen/platform-compat.h +++ b/unmodified_drivers/linux-2.6/compat-include/xen/platform-compat.h @@ -64,4 +64,9 @@ void *kzalloc(size_t size, int flags); #define end_that_request_last(req, uptodate) end_that_request_last(req) #endif +#if defined(_LINUX_KERNEL_H) && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) +extern char *kasprintf(gfp_t gfp, const char *fmt, ...) + __attribute__ ((format (printf, 2, 3))); +#endif + #endif diff --git a/unmodified_drivers/linux-2.6/platform-pci/platform-compat.c b/unmodified_drivers/linux-2.6/platform-pci/platform-compat.c index f3cef11620..5a0bb9bce8 100644 --- a/unmodified_drivers/linux-2.6/platform-pci/platform-compat.c +++ b/unmodified_drivers/linux-2.6/platform-pci/platform-compat.c @@ -114,3 +114,26 @@ void *kzalloc(size_t size, int flags) } EXPORT_SYMBOL(kzalloc); #endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) +/* Simplified asprintf. */ +char *kasprintf(gfp_t gfp, const char *fmt, ...) +{ + va_list ap; + unsigned int len; + char *p, dummy[1]; + + va_start(ap, fmt); + len = vsnprintf(dummy, 0, fmt, ap); + va_end(ap); + + p = kmalloc(len + 1, gfp); + if (!p) + return NULL; + va_start(ap, fmt); + vsprintf(p, fmt, ap); + va_end(ap); + return p; +} +EXPORT_SYMBOL(kasprintf); +#endif -- cgit v1.2.3