diff options
author | David Turner <digit@android.com> | 2010-09-10 11:50:34 +0200 |
---|---|---|
committer | David 'Digit' Turner <digit@android.com> | 2010-09-13 00:30:34 -0700 |
commit | b91980562344f6a3b719bfe4be007fa9406e585f (patch) | |
tree | d27adae483fb37401a6992a60f008c6ed435919e /osdep.c | |
parent | 4143d8f4c302878923bde0cb2420f4ca27245bcd (diff) | |
download | external_qemu-b91980562344f6a3b719bfe4be007fa9406e585f.zip external_qemu-b91980562344f6a3b719bfe4be007fa9406e585f.tar.gz external_qemu-b91980562344f6a3b719bfe4be007fa9406e585f.tar.bz2 |
upstream: osdep changes + fix mingw build.
Diffstat (limited to 'osdep.c')
-rw-r--r-- | osdep.c | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -43,6 +43,8 @@ #ifdef _WIN32 #include <windows.h> +#include <winsock2.h> +typedef int32_t socklen_t; #elif defined(CONFIG_BSD) #include <stdlib.h> #else @@ -392,3 +394,27 @@ int qemu_accept(int s, struct sockaddr *addr, socklen_t *addrlen) return ret; } + +#ifdef WIN32 +int asprintf( char **, char *, ... ); +int vasprintf( char **, char *, va_list ); + +int vasprintf( char **sptr, char *fmt, va_list argv ) +{ + int wanted = vsnprintf( *sptr = NULL, 0, fmt, argv ); + if( (wanted > 0) && ((*sptr = malloc( 1 + wanted )) != NULL) ) + return vsprintf( *sptr, fmt, argv ); + + return wanted; +} + +int asprintf( char **sptr, char *fmt, ... ) +{ + int retval; + va_list argv; + va_start( argv, fmt ); + retval = vasprintf( sptr, fmt, argv ); + va_end( argv ); + return retval; +} +#endif |