From 6accc22a50c51ab720a8b29740ccd928e6fb7f1e Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Tue, 17 Nov 2015 10:57:31 +0000 Subject: [PATCH 09/11] Rename poll.h to vm_poll.h musl libc's system headers pulls in open-vm-tools' poll.h. To avoid this we rename poll.h to vm_poll.h. Signed-off-by: Natanael Copa --- open-vm-tools/lib/asyncsocket/asyncsocket.c | 2 +- open-vm-tools/lib/hgfsServer/hgfsServer.c | 2 +- open-vm-tools/lib/include/asyncsocket.h | 2 +- open-vm-tools/lib/include/poll.h | 324 --------------------- open-vm-tools/lib/include/pollImpl.h | 2 +- open-vm-tools/lib/include/vm_poll.h | 324 +++++++++++++++++++++ open-vm-tools/lib/rpcIn/rpcin.c | 2 +- .../plugins/grabbitmqProxy/grabbitmqProxyPlugin.c | 2 +- 8 files changed, 330 insertions(+), 330 deletions(-) delete mode 100644 open-vm-tools/lib/include/poll.h create mode 100644 open-vm-tools/lib/include/vm_poll.h diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c index 05f217a..a24e356 100644 --- a/open-vm-tools/lib/asyncsocket/asyncsocket.c +++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c @@ -52,7 +52,7 @@ #include "vmware.h" #include "asyncsocket.h" #include "asyncSocketInt.h" -#include "poll.h" +#include "vm_poll.h" #include "log.h" #include "err.h" #include "hostinfo.h" diff --git a/open-vm-tools/lib/hgfsServer/hgfsServer.c b/open-vm-tools/lib/hgfsServer/hgfsServer.c index 0939655..147b9e8 100644 --- a/open-vm-tools/lib/hgfsServer/hgfsServer.c +++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c @@ -48,7 +48,7 @@ #include "hgfsServerOplock.h" #include "hgfsDirNotify.h" #include "userlock.h" -#include "poll.h" +#include "vm_poll.h" #include "mutexRankLib.h" #include "vm_basic_asm.h" #include "unicodeOperations.h" diff --git a/open-vm-tools/lib/include/asyncsocket.h b/open-vm-tools/lib/include/asyncsocket.h index 9d41a72..b9024d3 100644 --- a/open-vm-tools/lib/include/asyncsocket.h +++ b/open-vm-tools/lib/include/asyncsocket.h @@ -125,7 +125,7 @@ typedef struct AsyncSocket AsyncSocket; * Or the client can specify its favorite poll class and locking behavior. * Use of IVmdbPoll is only supported for regular sockets and for Attach. */ -#include "poll.h" +#include "vm_poll.h" struct IVmdbPoll; typedef struct AsyncSocketPollParams { int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */ diff --git a/open-vm-tools/lib/include/poll.h b/open-vm-tools/lib/include/poll.h deleted file mode 100644 index 834535c..0000000 --- a/open-vm-tools/lib/include/poll.h +++ /dev/null @@ -1,324 +0,0 @@ -/********************************************************* - * Copyright (C) 1998-2015 VMware, Inc. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation version 2.1 and no later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public - * License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - *********************************************************/ - -/********************************************************* - * The contents of this file are subject to the terms of the Common - * Development and Distribution License (the "License") version 1.0 - * and no later version. You may not use this file except in - * compliance with the License. - * - * You can obtain a copy of the License at - * http://www.opensource.org/licenses/cddl1.php - * - * See the License for the specific language governing permissions - * and limitations under the License. - * - *********************************************************/ - - -#ifndef _POLL_H_ -#define _POLL_H_ - -#define INCLUDE_ALLOW_USERLEVEL -#define INCLUDE_ALLOW_VMCORE -#include "includeCheck.h" - -#include "vm_basic_types.h" -#include "vm_basic_defs.h" -#include "vmware.h" -#include "userlock.h" - -#ifdef _WIN32 -#define HZ 100 -#elif defined linux -#include -#elif __APPLE__ -#include -/* - * Old SDKs don't define TARGET_OS_IPHONE at all. - * New ones define it to 0 on Mac OS X, 1 on iOS. - */ -#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0 -#include -#endif -#include -#define HZ 100 -#endif -#ifdef __ANDROID__ -/* - * of android should be included, but its name is same - * with this file. So its content is put here to avoid conflict. - */ -#include -#define HZ 100 -typedef unsigned int nfds_t; -int poll(struct pollfd *, nfds_t, long); -#endif - - -/* - * Poll event types: each type has a different reason for firing, - * or condition that must be met before firing. - */ - -typedef enum { - /* - * Actual Poll queue types against which you can register callbacks. - */ - POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */ - POLL_VTIME = 0, - POLL_REALTIME, - POLL_DEVICE, - POLL_MAIN_LOOP, - POLL_NUM_QUEUES -} PollEventType; - - -/* - * Classes of events - * - * These are the predefined classes. More can be declared - * with Poll_AllocClass(). - */ - -typedef enum PollClass { - POLL_CLASS_MAIN, - POLL_CLASS_PAUSE, - POLL_CLASS_IPC, - POLL_CLASS_CPT, - POLL_CLASS_MKS, - POLL_FIXED_CLASSES, - POLL_MAX_CLASSES = 320 /* Size enum to maximum */ -} PollClass; - - -/* - * Each callback is registered in a set of classes - */ - -typedef struct PollClassSet { - /* Type is uintptr_t to give best 32/64-bit code. */ -#define _POLL_ELEMSIZE (sizeof (uintptr_t) * 8) - uintptr_t bits[CEILING(POLL_MAX_CLASSES, _POLL_ELEMSIZE)]; -} PollClassSet; - -/* An empty PollClassSet. */ -static INLINE PollClassSet -PollClassSet_Empty(void) -{ - PollClassSet set = { { 0 } }; - return set; -} - -/* A PollClassSet with the single member. */ -static INLINE PollClassSet -PollClassSet_Singleton(PollClass c) -{ - PollClassSet s = PollClassSet_Empty(); - - ASSERT_ON_COMPILE(sizeof s.bits[0] * 8 == _POLL_ELEMSIZE); /* Size correct */ - ASSERT_ON_COMPILE((_POLL_ELEMSIZE & (_POLL_ELEMSIZE - 1)) == 0); /* power of 2 */ - ASSERT_ON_COMPILE(POLL_MAX_CLASSES <= ARRAYSIZE(s.bits) * _POLL_ELEMSIZE); - ASSERT(c < POLL_MAX_CLASSES); - - s.bits[c / _POLL_ELEMSIZE] = CONST3264U(1) << (c % _POLL_ELEMSIZE); - return s; -} - -/* Combine two PollClassSets. */ -static INLINE PollClassSet -PollClassSet_Union(PollClassSet lhs, PollClassSet rhs) -{ - PollClassSet u; - unsigned i; - - for (i = 0; i < ARRAYSIZE(u.bits); i++) { - u.bits[i] = lhs.bits[i] | rhs.bits[i]; - } - return u; -} - -/* Add single class to PollClassSet. */ -static INLINE PollClassSet -PollClassSet_Include(PollClassSet set, PollClass c) -{ - return PollClassSet_Union(set, PollClassSet_Singleton(c)); -} - - -#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN) -#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \ - PollClassSet_Singleton(POLL_CLASS_PAUSE)) -#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \ - PollClassSet_Singleton(POLL_CLASS_CPT)) -#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \ - PollClassSet_Singleton(POLL_CLASS_IPC)) -#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */ -#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS) -/* - * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it. - */ -#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC) - -/* - * Poll class-set taxonomy: - * POLL_CS_MAIN - * - Unless you NEED another class, use POLL_CS_MAIN. - * POLL_CS_PAUSE - * - For callbacks that must occur even if the guest is paused. - * Most VMDB or Foundry commands are in this category. - * POLL_CS_CPT - * - Only for callbacks which can trigger intermediate Checkpoint - * transitions. - * The ONLY such callback is Migrate. - * POLL_CS_IPC - * - Only for callbacks which can contain Msg_(Post|Hint|Question) - * responses, and for signal handlers (why)? - * Vigor, VMDB, and Foundry can contain Msg_* responses. - * POLL_CS_MKS - * - Callback runs in MKS thread. - * POLL_CS_ALWAYS - * - Only for events that must be processed immediately. - * The ONLY such callback is OvhdMemVmxSizeCheck. - */ - - -/* - * Poll_Callback flags - */ - -#define POLL_FLAG_PERIODIC 0x01 // keep after firing -#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory -#define POLL_FLAG_READ 0x04 // device is ready for reading -#define POLL_FLAG_WRITE 0x08 // device is ready for writing -#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket -#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking -#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events -#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor. -#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl -#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop - - -/* - * Advisory minimum time period. - * Users that want the fastest running real-time poll - * should use TICKS_TO_USECS(1). - */ - -#define TICKS_TO_USECS(_x) ((_x) * (1000000 / HZ)) -#define USECS_TO_TICKS(_x) ((_x) / (1000000 / HZ)) - - -typedef void (*PollerFunction)(void *clientData); -typedef void (*PollerFireWrapper)(PollerFunction func, - void *funcData, - void *wrapperData); -typedef Bool (*PollerErrorFn)(const char *errorStr); - -/* - * Initialisers: - * - * For the sake of convenience, we declare the initialisers - * for custom implmentations here, even though the actual - * implementations are distinct from the core poll code. - */ - -typedef struct PollOptions { - Bool locked; // Use internal MXUser for locking - Bool allowFullQueue; // Don't assert when device event queue is full. - VThreadID windowsMsgThread; // thread that processes Windows messages - PollerFireWrapper fireWrapperFn; // optional; may be useful for stats - void *fireWrapperData; // optional - PollerErrorFn errorFn; // optional; called upon unrecoverable error -} PollOptions; - - -void Poll_InitDefault(void); -void Poll_InitDefaultEx(const PollOptions *opts); -void Poll_InitGtk(void); // On top of glib for Linux -void Poll_InitCF(void); // On top of CoreFoundation for OSX - - -/* - * Functions - */ -int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]); -void Poll_Loop(Bool loop, Bool *exit, PollClass c); -void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout); -Bool Poll_LockingEnabled(void); -void Poll_Exit(void); - - -/* - * Poll_Callback adds a callback regardless of whether an identical one exists. - * - * Likewise, Poll_CallbackRemove removes exactly one callback. - */ - -VMwareStatus Poll_Callback(PollClassSet classSet, - int flags, - PollerFunction f, - void *clientData, - PollEventType type, - PollDevHandle info, // fd/microsec delay - MXUserRecLock *lck); -Bool Poll_CallbackRemove(PollClassSet classSet, - int flags, - PollerFunction f, - void *clientData, - PollEventType type); -Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet, - int flags, - PollerFunction f, - PollEventType type, - void **clientData); - -void Poll_NotifyChange(PollClassSet classSet); - -/* - * Wrappers for Poll_Callback and Poll_CallbackRemove that present - * simpler subsets of those interfaces. - */ - -VMwareStatus Poll_CB_Device(PollerFunction f, - void *clientData, - PollDevHandle device, - Bool periodic); - -Bool Poll_CB_DeviceRemove(PollerFunction f, - void *clientData, - Bool periodic); - - -VMwareStatus Poll_CB_RTime(PollerFunction f, - void *clientData, - int delay, // microseconds - Bool periodic, - MXUserRecLock *lock); - -Bool Poll_CB_RTimeRemove(PollerFunction f, - void *clientData, - Bool periodic); - - -#ifdef _WIN32 -void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk); -Bool Poll_FireWndCallback(void *lparam); -#endif - -#endif // _POLL_H_ diff --git a/open-vm-tools/lib/include/pollImpl.h b/open-vm-tools/lib/include/pollImpl.h index 569c73d..e429f11 100644 --- a/open-vm-tools/lib/include/pollImpl.h +++ b/open-vm-tools/lib/include/pollImpl.h @@ -44,7 +44,7 @@ #define INCLUDE_ALLOW_USERLEVEL #include "includeCheck.h" -#include "poll.h" +#include "vm_poll.h" /* * PollImpl: diff --git a/open-vm-tools/lib/include/vm_poll.h b/open-vm-tools/lib/include/vm_poll.h new file mode 100644 index 0000000..834535c --- /dev/null +++ b/open-vm-tools/lib/include/vm_poll.h @@ -0,0 +1,324 @@ +/********************************************************* + * Copyright (C) 1998-2015 VMware, Inc. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation version 2.1 and no later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public + * License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + *********************************************************/ + +/********************************************************* + * The contents of this file are subject to the terms of the Common + * Development and Distribution License (the "License") version 1.0 + * and no later version. You may not use this file except in + * compliance with the License. + * + * You can obtain a copy of the License at + * http://www.opensource.org/licenses/cddl1.php + * + * See the License for the specific language governing permissions + * and limitations under the License. + * + *********************************************************/ + + +#ifndef _POLL_H_ +#define _POLL_H_ + +#define INCLUDE_ALLOW_USERLEVEL +#define INCLUDE_ALLOW_VMCORE +#include "includeCheck.h" + +#include "vm_basic_types.h" +#include "vm_basic_defs.h" +#include "vmware.h" +#include "userlock.h" + +#ifdef _WIN32 +#define HZ 100 +#elif defined linux +#include +#elif __APPLE__ +#include +/* + * Old SDKs don't define TARGET_OS_IPHONE at all. + * New ones define it to 0 on Mac OS X, 1 on iOS. + */ +#if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0 +#include +#endif +#include +#define HZ 100 +#endif +#ifdef __ANDROID__ +/* + * of android should be included, but its name is same + * with this file. So its content is put here to avoid conflict. + */ +#include +#define HZ 100 +typedef unsigned int nfds_t; +int poll(struct pollfd *, nfds_t, long); +#endif + + +/* + * Poll event types: each type has a different reason for firing, + * or condition that must be met before firing. + */ + +typedef enum { + /* + * Actual Poll queue types against which you can register callbacks. + */ + POLL_VIRTUALREALTIME = -1, /* Negative because it doesn't have its own Q */ + POLL_VTIME = 0, + POLL_REALTIME, + POLL_DEVICE, + POLL_MAIN_LOOP, + POLL_NUM_QUEUES +} PollEventType; + + +/* + * Classes of events + * + * These are the predefined classes. More can be declared + * with Poll_AllocClass(). + */ + +typedef enum PollClass { + POLL_CLASS_MAIN, + POLL_CLASS_PAUSE, + POLL_CLASS_IPC, + POLL_CLASS_CPT, + POLL_CLASS_MKS, + POLL_FIXED_CLASSES, + POLL_MAX_CLASSES = 320 /* Size enum to maximum */ +} PollClass; + + +/* + * Each callback is registered in a set of classes + */ + +typedef struct PollClassSet { + /* Type is uintptr_t to give best 32/64-bit code. */ +#define _POLL_ELEMSIZE (sizeof (uintptr_t) * 8) + uintptr_t bits[CEILING(POLL_MAX_CLASSES, _POLL_ELEMSIZE)]; +} PollClassSet; + +/* An empty PollClassSet. */ +static INLINE PollClassSet +PollClassSet_Empty(void) +{ + PollClassSet set = { { 0 } }; + return set; +} + +/* A PollClassSet with the single member. */ +static INLINE PollClassSet +PollClassSet_Singleton(PollClass c) +{ + PollClassSet s = PollClassSet_Empty(); + + ASSERT_ON_COMPILE(sizeof s.bits[0] * 8 == _POLL_ELEMSIZE); /* Size correct */ + ASSERT_ON_COMPILE((_POLL_ELEMSIZE & (_POLL_ELEMSIZE - 1)) == 0); /* power of 2 */ + ASSERT_ON_COMPILE(POLL_MAX_CLASSES <= ARRAYSIZE(s.bits) * _POLL_ELEMSIZE); + ASSERT(c < POLL_MAX_CLASSES); + + s.bits[c / _POLL_ELEMSIZE] = CONST3264U(1) << (c % _POLL_ELEMSIZE); + return s; +} + +/* Combine two PollClassSets. */ +static INLINE PollClassSet +PollClassSet_Union(PollClassSet lhs, PollClassSet rhs) +{ + PollClassSet u; + unsigned i; + + for (i = 0; i < ARRAYSIZE(u.bits); i++) { + u.bits[i] = lhs.bits[i] | rhs.bits[i]; + } + return u; +} + +/* Add single class to PollClassSet. */ +static INLINE PollClassSet +PollClassSet_Include(PollClassSet set, PollClass c) +{ + return PollClassSet_Union(set, PollClassSet_Singleton(c)); +} + + +#define POLL_CS_MAIN PollClassSet_Singleton(POLL_CLASS_MAIN) +#define POLL_CS_PAUSE PollClassSet_Union(POLL_CS_MAIN, \ + PollClassSet_Singleton(POLL_CLASS_PAUSE)) +#define POLL_CS_CPT PollClassSet_Union(POLL_CS_PAUSE, \ + PollClassSet_Singleton(POLL_CLASS_CPT)) +#define POLL_CS_IPC PollClassSet_Union(POLL_CS_CPT, \ + PollClassSet_Singleton(POLL_CLASS_IPC)) +#define POLL_CS_VMDB POLL_CS_PAUSE /* POLL_CLASS_VMDB is retired */ +#define POLL_CS_MKS PollClassSet_Singleton(POLL_CLASS_MKS) +/* + * DANGER. You don't need POLL_CS_ALWAYS. Really. So don't use it. + */ +#define POLL_CS_ALWAYS PollClassSet_Union(POLL_CS_CPT, POLL_CS_IPC) + +/* + * Poll class-set taxonomy: + * POLL_CS_MAIN + * - Unless you NEED another class, use POLL_CS_MAIN. + * POLL_CS_PAUSE + * - For callbacks that must occur even if the guest is paused. + * Most VMDB or Foundry commands are in this category. + * POLL_CS_CPT + * - Only for callbacks which can trigger intermediate Checkpoint + * transitions. + * The ONLY such callback is Migrate. + * POLL_CS_IPC + * - Only for callbacks which can contain Msg_(Post|Hint|Question) + * responses, and for signal handlers (why)? + * Vigor, VMDB, and Foundry can contain Msg_* responses. + * POLL_CS_MKS + * - Callback runs in MKS thread. + * POLL_CS_ALWAYS + * - Only for events that must be processed immediately. + * The ONLY such callback is OvhdMemVmxSizeCheck. + */ + + +/* + * Poll_Callback flags + */ + +#define POLL_FLAG_PERIODIC 0x01 // keep after firing +#define POLL_FLAG_REMOVE_AT_POWEROFF 0x02 // self-explanatory +#define POLL_FLAG_READ 0x04 // device is ready for reading +#define POLL_FLAG_WRITE 0x08 // device is ready for writing +#define POLL_FLAG_SOCKET 0x10 // device is a Windows socket +#define POLL_FLAG_NO_BULL 0x20 // callback does its own locking +#define POLL_FLAG_WINSOCK 0x40 // Winsock style write events +#define POLL_FLAG_FD 0x80 // device is a Windows file descriptor. +#define POLL_FLAG_ACCEPT_INVALID_FDS 0x100 // For broken 3rd party libs, e.g. curl +#define POLL_FLAG_THUNK_TO_WND 0x200 // thunk callback to window message loop + + +/* + * Advisory minimum time period. + * Users that want the fastest running real-time poll + * should use TICKS_TO_USECS(1). + */ + +#define TICKS_TO_USECS(_x) ((_x) * (1000000 / HZ)) +#define USECS_TO_TICKS(_x) ((_x) / (1000000 / HZ)) + + +typedef void (*PollerFunction)(void *clientData); +typedef void (*PollerFireWrapper)(PollerFunction func, + void *funcData, + void *wrapperData); +typedef Bool (*PollerErrorFn)(const char *errorStr); + +/* + * Initialisers: + * + * For the sake of convenience, we declare the initialisers + * for custom implmentations here, even though the actual + * implementations are distinct from the core poll code. + */ + +typedef struct PollOptions { + Bool locked; // Use internal MXUser for locking + Bool allowFullQueue; // Don't assert when device event queue is full. + VThreadID windowsMsgThread; // thread that processes Windows messages + PollerFireWrapper fireWrapperFn; // optional; may be useful for stats + void *fireWrapperData; // optional + PollerErrorFn errorFn; // optional; called upon unrecoverable error +} PollOptions; + + +void Poll_InitDefault(void); +void Poll_InitDefaultEx(const PollOptions *opts); +void Poll_InitGtk(void); // On top of glib for Linux +void Poll_InitCF(void); // On top of CoreFoundation for OSX + + +/* + * Functions + */ +int Poll_SocketPair(Bool vmci, Bool stream, int fds[2]); +void Poll_Loop(Bool loop, Bool *exit, PollClass c); +void Poll_LoopTimeout(Bool loop, Bool *exit, PollClass c, int timeout); +Bool Poll_LockingEnabled(void); +void Poll_Exit(void); + + +/* + * Poll_Callback adds a callback regardless of whether an identical one exists. + * + * Likewise, Poll_CallbackRemove removes exactly one callback. + */ + +VMwareStatus Poll_Callback(PollClassSet classSet, + int flags, + PollerFunction f, + void *clientData, + PollEventType type, + PollDevHandle info, // fd/microsec delay + MXUserRecLock *lck); +Bool Poll_CallbackRemove(PollClassSet classSet, + int flags, + PollerFunction f, + void *clientData, + PollEventType type); +Bool Poll_CallbackRemoveOneByCB(PollClassSet classSet, + int flags, + PollerFunction f, + PollEventType type, + void **clientData); + +void Poll_NotifyChange(PollClassSet classSet); + +/* + * Wrappers for Poll_Callback and Poll_CallbackRemove that present + * simpler subsets of those interfaces. + */ + +VMwareStatus Poll_CB_Device(PollerFunction f, + void *clientData, + PollDevHandle device, + Bool periodic); + +Bool Poll_CB_DeviceRemove(PollerFunction f, + void *clientData, + Bool periodic); + + +VMwareStatus Poll_CB_RTime(PollerFunction f, + void *clientData, + int delay, // microseconds + Bool periodic, + MXUserRecLock *lock); + +Bool Poll_CB_RTimeRemove(PollerFunction f, + void *clientData, + Bool periodic); + + +#ifdef _WIN32 +void Poll_SetWindowMessageRecipient(HWND hWnd, UINT msg, Bool alwaysThunk); +Bool Poll_FireWndCallback(void *lparam); +#endif + +#endif // _POLL_H_ diff --git a/open-vm-tools/lib/rpcIn/rpcin.c b/open-vm-tools/lib/rpcIn/rpcin.c index abe48e6..243a86f 100644 --- a/open-vm-tools/lib/rpcIn/rpcin.c +++ b/open-vm-tools/lib/rpcIn/rpcin.c @@ -57,7 +57,7 @@ #if defined(VMTOOLS_USE_VSOCKET) # include -# include "poll.h" +# include "vm_poll.h" # include "asyncsocket.h" # include "vmci_defs.h" #include "dataMap.h" diff --git a/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c b/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c index 9451dcc..3ebf6ba 100644 --- a/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c +++ b/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c @@ -48,7 +48,7 @@ #include "rpcout.h" #include "rabbitmqProxyConst.h" #include "vm_basic_types.h" -#include "poll.h" +#include "vm_poll.h" #ifdef OPEN_VM_TOOLS #include "vmci_sockets.h" #include "sslDirect.h" -- 2.6.3