qemu-e2k/include/qemu
Daniel P. Berrange a2d96af4bb osdep: add wrappers for socket functions
The windows socket functions look identical to the normal POSIX
sockets functions, but instead of setting errno, the caller needs
to call WSAGetLastError(). QEMU has tried to deal with this
incompatibility by defining a socket_error() method that callers
must use that abstracts the difference between WSAGetLastError()
and errno.

This approach is somewhat error prone though - many callers of
the sockets functions are just using errno directly because it
is easy to forget the need use a QEMU specific wrapper. It is
not always immediately obvious that a particular function will
in fact call into Windows sockets functions, so the dev may not
even realize they need to use socket_error().

This introduces an alternative approach to portability inspired
by the way GNULIB fixes portability problems. We use a macro to
redefine the original socket function names to refer to a QEMU
wrapper function. The wrapper function calls the original Win32
sockets method and then sets errno from the WSAGetLastError()
value.

Thus all code can simply call the normal POSIX sockets APIs are
have standard errno reporting on error, even on Windows. This
makes the socket_error() method obsolete.

We also bring closesocket & ioctlsocket into this approach. Even
though they are non-standard Win32 names, we can't wrap the normal
close/ioctl methods since there's no reliable way to distinguish
between a file descriptor and HANDLE in Win32.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2016-03-10 17:19:07 +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: add wrappers for socket functions 2016-03-10 17:19:07 +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