diff --git a/common/marshaller.c b/common/marshaller.c index 0b45523..4379aa6 100644 --- a/common/marshaller.c +++ b/common/marshaller.c @@ -549,7 +549,14 @@ void spice_marshaller_flush(SpiceMarshaller *m) } } -#ifndef WIN32 +#ifdef WIN32 +// this definition is ABI compatible with WSABUF +struct iovec { + unsigned long iov_len; + void *iov_base; +}; +#endif + int spice_marshaller_fill_iovec(SpiceMarshaller *m, struct iovec *vec, int n_vec, size_t skip_bytes) { @@ -581,7 +588,6 @@ int spice_marshaller_fill_iovec(SpiceMarshaller *m, struct iovec *vec, return v; } -#endif void *spice_marshaller_add_uint64(SpiceMarshaller *m, uint64_t v) { diff --git a/common/marshaller.h b/common/marshaller.h index 2aeeea1..041d16e 100644 --- a/common/marshaller.h +++ b/common/marshaller.h @@ -25,6 +25,8 @@ #include "mem.h" #ifndef WIN32 #include +#else +struct iovec; #endif SPICE_BEGIN_DECLS @@ -52,10 +54,8 @@ size_t spice_marshaller_get_size(SpiceMarshaller *m); size_t spice_marshaller_get_total_size(SpiceMarshaller *m); SpiceMarshaller *spice_marshaller_get_submarshaller(SpiceMarshaller *m); SpiceMarshaller *spice_marshaller_get_ptr_submarshaller(SpiceMarshaller *m, int is_64bit); -#ifndef WIN32 int spice_marshaller_fill_iovec(SpiceMarshaller *m, struct iovec *vec, int n_vec, size_t skip_bytes); -#endif void *spice_marshaller_add_uint64(SpiceMarshaller *m, uint64_t v); void *spice_marshaller_add_int64(SpiceMarshaller *m, int64_t v); void *spice_marshaller_add_uint32(SpiceMarshaller *m, uint32_t v);