aboutsummaryrefslogtreecommitdiffstats
path: root/osdep.c
diff options
context:
space:
mode:
authorDavid Turner <digit@android.com>2010-09-10 11:50:34 +0200
committerDavid 'Digit' Turner <digit@android.com>2010-09-13 00:30:34 -0700
commitb91980562344f6a3b719bfe4be007fa9406e585f (patch)
treed27adae483fb37401a6992a60f008c6ed435919e /osdep.c
parent4143d8f4c302878923bde0cb2420f4ca27245bcd (diff)
downloadexternal_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.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/osdep.c b/osdep.c
index 37d3001..041ed50 100644
--- a/osdep.c
+++ b/osdep.c
@@ -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