From: Venkateswararao Jujjuri (JV) Date: Thu, 7 Oct 2010 00:09:42 +0000 (-0700) Subject: [virtio-9p] Add support to v9fs_string_alloc_printf() for handling %lu. X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=45b23ff8f05d8f145d680476dd08e7f444cef547;p=qemu.git [virtio-9p] Add support to v9fs_string_alloc_printf() for handling %lu. Signed-off-by: Venkateswararao Jujjuri --- diff --git a/hw/virtio-9p.c b/hw/virtio-9p.c index 0e8772257b..daade77ed9 100644 --- a/hw/virtio-9p.c +++ b/hw/virtio-9p.c @@ -321,6 +321,14 @@ static int number_to_string(void *arg, char type) } while (num); break; } + case 'U': { + unsigned long num = *(unsigned long *)arg; + do { + ret++; + num = num/10; + } while (num); + break; + } default: printf("Number_to_string: Unknown number format\n"); return -1; @@ -338,6 +346,7 @@ v9fs_string_alloc_printf(char **strp, const char *fmt, va_list ap) int nr_args = 0; char *arg_char_ptr; unsigned int arg_uint; + unsigned long arg_ulong; /* Find the number of %'s that denotes an argument */ for (iter = strstr(iter, "%"); iter; iter = strstr(iter, "%")) { @@ -363,6 +372,14 @@ v9fs_string_alloc_printf(char **strp, const char *fmt, va_list ap) arg_uint = va_arg(ap2, unsigned int); len += number_to_string((void *)&arg_uint, 'u'); break; + case 'l': + if (*++iter == 'u') { + arg_ulong = va_arg(ap2, unsigned long); + len += number_to_string((void *)&arg_ulong, 'U'); + } else { + return -1; + } + break; case 's': arg_char_ptr = va_arg(ap2, char *); len += strlen(arg_char_ptr);