qemu-patch-raspberry4/include/qemu
Daniel P. Berrange c619644067 osdep: fix socket_error() to work with Mingw64
Historically QEMU has had a socket_error() macro that was
defined to map to WSASocketError(). The os-win32.h header
file would define errno constants that mapped to the
WSA error constants. This worked fine with Mingw32 since
its header files never defined any errno values, nor did
it even provide an errno.h.  So callers of socket_error()
could match on traditional Exxxx constants and it would
all "just work".

With Mingw64 though, things work rather differently. First
there is an errno.h file which defines all the traditional
errno constants you'd expect from a UNIX platform. There
is then a winerror.h which defined the WSA error constants.
Crucially the WSAExxxx errno values in winerror.h do not
match the Exxxx errno values in error.h.

If QEMU had only imported winerror.h it would still work,
but the qemu/osdep.h file unconditionally imports errno.h.
So callers of socket_error() will get now WSAExxxx values
back and compare them to the Exxx constants. This will
always fail silently at runtime.

To solve this QEMU needs to stop assuming the WSAExxxx
constant values match the Exxx constant values. Thus the
socket_error() macro is turned into a small function that
re-maps WSAExxxx values into Exxx.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2016-03-10 17:10:17 +00:00
..
acl.h misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
atomic.h include: Clean up includes 2016-02-23 12:43:05 +00:00
base64.h util: add base64 decoding function 2015-12-18 16:25:08 +00:00
bitmap.h include: Clean up includes 2016-02-23 12:43:05 +00:00
bitops.h include: Clean up includes 2016-02-23 12:43:05 +00:00
bswap.h include: Clean up includes 2016-02-23 12:43:05 +00:00
buffer.h buffer: allow a buffer to shrink gracefully 2015-11-05 09:09:58 +01:00
compatfd.h include: Clean up includes 2016-02-23 12:43:05 +00:00
compiler.h include: Clean up includes 2016-02-23 12:43:05 +00:00
config-file.h include: Clean up includes 2016-02-23 12:43:05 +00:00
coroutine.h include: Clean up includes 2016-02-23 12:43:05 +00:00
coroutine_int.h coroutine: move into libqemuutil.a library 2015-10-20 14:59:04 +01:00
crc32c.h include/qemu/crc32c.h: Rename include guards to match filename 2014-02-26 17:20:07 +00:00
envlist.h misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
error-report.h include: Clean up includes 2016-02-23 12:43:05 +00:00
event_notifier.h util: const event_notifier_get_fd() argument 2015-10-24 18:02:49 +02:00
fifo8.h util/fifo8: implement push/pop of multiple bytes 2014-02-08 14:50:48 +00:00
fprintf-fn.h include: Clean up includes 2016-02-23 12:43:05 +00:00
hbitmap.h include: Clean up includes 2016-02-23 12:43:05 +00:00
host-utils.h include: Clean up includes 2016-02-23 12:43:05 +00:00
int128.h include: Clean up includes 2016-02-23 12:43:05 +00:00
iov.h iov: avoid memcpy for "simple" iov_from_buf/iov_to_buf 2016-02-09 13:52:26 +00:00
log.h * Asynchronous dump-guest-memory from Peter 2016-02-25 15:30:57 +00:00
main-loop.h iohandler: Use aio API 2015-09-07 18:14:03 +02:00
memfd.h include: Clean up includes 2016-02-23 12:43:05 +00:00
mmap-alloc.h util/mmap-alloc: fix hugetlb support on ppc64 2015-12-02 22:38:23 +02:00
module.h include: Clean up includes 2016-02-23 12:43:05 +00:00
notify.h notify: add NotiferWithReturn so notifier list can abort 2013-06-28 09:20:26 +02:00
option.h include: Clean up includes 2016-02-23 12:43:05 +00:00
option_int.h QemuOpts: change opt->name|str from (const char *) to (char *) 2014-06-16 17:23:20 +08:00
osdep.h osdep.h: Include config-target.h if NEED_CPU_H is defined 2016-02-23 12:43:05 +00:00
queue.h block: Remove bdrv_swap() 2015-10-16 15:34:30 +02:00
range.h include: Clean up includes 2016-02-23 12:43:05 +00:00
ratelimit.h aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
rcu.h include: Clean up includes 2016-02-23 12:43:05 +00:00
rcu_queue.h rcu: introduce RCU-enabled QLIST 2015-02-16 17:30:19 +01:00
readline.h readline: Add missing GCC_FMT_ATTR 2014-02-01 13:46:06 +04:00
rfifolock.h rfifolock: add recursive FIFO lock 2014-03-13 14:42:21 +01:00
seqlock.h seqlock: read sequence number atomically 2015-09-07 18:12:39 +02:00
sockets.h osdep: fix socket_error() to work with Mingw64 2016-03-10 17:10:17 +00:00
thread-posix.h qemu-thread: add QemuEvent 2013-10-17 17:30:55 +02:00
thread-win32.h qemu-thread: add a fast path to the Win32 QemuEvent 2015-09-24 20:52:28 +02:00
thread.h include: Clean up includes 2016-02-23 12:43:05 +00:00
throttle.h include: Clean up includes 2016-02-23 12:43:05 +00:00
timed-average.h include: Clean up includes 2016-02-23 12:43:05 +00:00
timer.h s/cpu_get_real_ticks/cpu_get_host_ticks/ 2015-10-08 19:46:01 +03:00
typedefs.h typedefs: Add CPUState 2016-03-01 13:27:09 +00:00
uri.h misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
xattr.h include: Clean up includes 2016-02-23 12:43:05 +00:00