Merge remote-tracking branch 'remotes/bonzini/scsi-next' into staging
[qemu/cris-port.git] / include / glib-compat.h
blob1280fb2c1f1d3ca6ddcd10940812a67ced4e6fdd
1 /*
2 * GLIB Compatibility Functions
4 * Copyright IBM, Corp. 2013
6 * Authors:
7 * Anthony Liguori <aliguori@us.ibm.com>
9 * This work is licensed under the terms of the GNU GPL, version 2 or later.
10 * See the COPYING file in the top-level directory.
14 #ifndef QEMU_GLIB_COMPAT_H
15 #define QEMU_GLIB_COMPAT_H
17 #include <glib.h>
19 #if !GLIB_CHECK_VERSION(2, 14, 0)
20 static inline guint g_timeout_add_seconds(guint interval, GSourceFunc function,
21 gpointer data)
23 return g_timeout_add(interval * 1000, function, data);
25 #endif
27 #ifdef _WIN32
29 * g_poll has a problem on Windows when using
30 * timeouts < 10ms, so use wrapper.
32 #define g_poll(fds, nfds, timeout) g_poll_fixed(fds, nfds, timeout)
33 gint g_poll_fixed(GPollFD *fds, guint nfds, gint timeout);
34 #elif !GLIB_CHECK_VERSION(2, 20, 0)
36 * Glib before 2.20.0 doesn't implement g_poll, so wrap it to compile properly
37 * on older systems.
39 static inline gint g_poll(GPollFD *fds, guint nfds, gint timeout)
41 GMainContext *ctx = g_main_context_default();
42 return g_main_context_get_poll_func(ctx)(fds, nfds, timeout);
44 #endif
46 #endif