/* Platform specific type definitions. */
+#if defined(linux) && !defined(VMKERNEL)
+# define VMCI_EXPORT_SYMBOL(_symbol) EXPORT_SYMBOL(_symbol);
+#elif defined(__APPLE__)
+# define VMCI_EXPORT_SYMBOL(_symbol) __attribute__((visibility("default")))
+#else
+# define VMCI_EXPORT_SYMBOL(_symbol)
+#endif
+
#if defined(VMKERNEL)
typedef SP_SpinLock VMCILock;
typedef SP_IRQL VMCILockFlags;
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIDatagramCreateHndInt)
int
VMCIDatagramCreateHndInt(VMCIId resourceID, // IN:
uint32 flags, // IN:
*-----------------------------------------------------------------------------
*/
-#ifdef __linux__
-EXPORT_SYMBOL(VMCIDatagram_CreateHnd);
-#endif
-
+VMCI_EXPORT_SYMBOL(VMCIDatagram_CreateHnd)
int
VMCIDatagram_CreateHnd(VMCIId resourceID, // IN:
uint32 flags, // IN:
*-----------------------------------------------------------------------------
*/
-#ifdef __linux__
-EXPORT_SYMBOL(VMCIDatagram_CreateHndPriv);
-#endif
-
+VMCI_EXPORT_SYMBOL(VMCIDatagram_CreateHndPriv)
int
VMCIDatagram_CreateHndPriv(VMCIId resourceID, // IN:
uint32 flags, // IN:
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIDatagramCreateHndPriv)
int
VMCIDatagramCreateHndPriv(VMCIId resourceID, // IN:
uint32 flags, // IN:
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIDatagramDestroyHndInt)
int
VMCIDatagramDestroyHndInt(VMCIHandle handle) // IN
{
*-----------------------------------------------------------------------------
*/
-#ifdef __linux__
-EXPORT_SYMBOL(VMCIDatagram_DestroyHnd);
-#endif
-
+VMCI_EXPORT_SYMBOL(VMCIDatagram_DestroyHnd)
int
VMCIDatagram_DestroyHnd(VMCIHandle handle) // IN
{
*-----------------------------------------------------------------------------
*/
-#ifdef __linux__
-EXPORT_SYMBOL(VMCIDatagram_Send);
-#endif
-
+VMCI_EXPORT_SYMBOL(VMCIDatagram_Send)
int
VMCIDatagram_Send(VMCIDatagram *msg) // IN
{
*----------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIEventSubscribe)
int
VMCIEventSubscribe(VMCI_Event event, // IN
uint32 flags, // IN
*----------------------------------------------------------------------
*/
-#if defined(__linux__)
-EXPORT_SYMBOL(VMCIEvent_Subscribe);
-#endif
-
+VMCI_EXPORT_SYMBOL(VMCIEvent_Subscribe)
int
VMCIEvent_Subscribe(VMCI_Event event, // IN
uint32 flags, // IN
*----------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIEventUnsubscribe)
int
VMCIEventUnsubscribe(VMCIId subID) // IN
{
*----------------------------------------------------------------------
*/
-#if defined(__linux__)
-EXPORT_SYMBOL(VMCIEvent_Unsubscribe);
-#endif
-
+VMCI_EXPORT_SYMBOL(VMCIEvent_Unsubscribe)
int
VMCIEvent_Unsubscribe(VMCIId subID) // IN
{
*-------------------------------------------------------------------------
*/
-#ifdef __linux__
-EXPORT_SYMBOL(VMCIDs_Lookup);
-#endif
-
+VMCI_EXPORT_SYMBOL(VMCIDs_Lookup)
int
VMCIDs_Lookup(const char *name, // IN
VMCIHandle *out) //
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIDoorbell_Create)
int
VMCIDoorbell_Create(VMCIHandle *handle, // IN
uint32 flags, // IN
notifyCB, clientData);
}
-#if defined(__linux__)
-EXPORT_SYMBOL(VMCIDoorbell_Create);
-#endif
-
/*
*-----------------------------------------------------------------------------
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIDoorbell_Destroy)
int
VMCIDoorbell_Destroy(VMCIHandle handle) // IN
{
return VMCINotificationUnregister(handle, TRUE);
}
-#if defined(__linux__)
-EXPORT_SYMBOL(VMCIDoorbell_Destroy);
-#endif
-
/*
*-----------------------------------------------------------------------------
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIDoorbell_Notify)
int
VMCIDoorbell_Notify(VMCIHandle handle, // IN
VMCIPrivilegeFlags privFlags) // IN: Unused in guest
return result;
}
-#if defined(__linux__)
-EXPORT_SYMBOL(VMCIDoorbell_Notify);
-#endif
#else // defined(SOLARIS) || defined(__APPLE__)
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIDoorbell_Create)
int
VMCIDoorbell_Create(VMCIHandle *handle, // IN
- uint32 flags, // IN
+ uint32 flags, // I
VMCIPrivilegeFlags privFlags, // IN
VMCICallback notifyCB, // IN
void *clientData) // IN
}
+VMCI_EXPORT_SYMBOL(VMCIDoorbell_Destroy)
int
VMCIDoorbell_Destroy(VMCIHandle handle) // IN
{
}
+VMCI_EXPORT_SYMBOL(VMCIDoorbell_Notify)
int
VMCIDoorbell_Notify(VMCIHandle handle, // IN
VMCIPrivilegeFlags privFlags) // IN
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIQPair_Alloc)
int
VMCIQPair_Alloc(VMCIQPair **qpair, // OUT
VMCIHandle *handle, // OUT
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIQPair_Detach)
int
VMCIQPair_Detach(VMCIQPair **qpair) // IN/OUT
{
}
-#if defined __linux__ && !defined VMKERNEL
-EXPORT_SYMBOL(VMCIQPair_Alloc);
-EXPORT_SYMBOL(VMCIQPair_Detach);
-#endif
-
/*
* "Windows blocking call."
*
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIQPair_Init)
void
VMCIQPair_Init(VMCIQPair *qpair)
{
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIQPair_GetProduceIndexes)
int
VMCIQPair_GetProduceIndexes(const VMCIQPair *qpair, // IN
uint64 *producerTail, // OUT
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIQPair_GetConsumeIndexes)
int
VMCIQPair_GetConsumeIndexes(const VMCIQPair *qpair, // IN
uint64 *consumerTail, // OUT
return VMCI_SUCCESS;
}
-#if defined __linux__ && !defined VMKERNEL
-EXPORT_SYMBOL(VMCIQPair_Init);
-EXPORT_SYMBOL(VMCIQPair_GetProduceIndexes);
-EXPORT_SYMBOL(VMCIQPair_GetConsumeIndexes);
-#endif
-
/*
*-----------------------------------------------------------------------------
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIQPair_ProduceFreeSpace)
int64
VMCIQPair_ProduceFreeSpace(const VMCIQPair *qpair) // IN
{
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIQPair_ConsumeFreeSpace)
int64
VMCIQPair_ConsumeFreeSpace(const VMCIQPair *qpair) // IN
{
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIQPair_ProduceBufReady)
int64
VMCIQPair_ProduceBufReady(const VMCIQPair *qpair) // IN
{
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIQPair_ConsumeBufReady)
int64
VMCIQPair_ConsumeBufReady(const VMCIQPair *qpair) // IN
{
return result;
}
-#if defined __linux__ && !defined VMKERNEL
-EXPORT_SYMBOL(VMCIQPair_ProduceFreeSpace);
-EXPORT_SYMBOL(VMCIQPair_ConsumeFreeSpace);
-EXPORT_SYMBOL(VMCIQPair_ProduceBufReady);
-EXPORT_SYMBOL(VMCIQPair_ConsumeBufReady);
-#endif
-
/*
*-----------------------------------------------------------------------------
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIQPair_Enqueue)
ssize_t
VMCIQPair_Enqueue(VMCIQPair *qpair, // IN
const void *buf, // IN
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIQPair_Dequeue)
ssize_t
VMCIQPair_Dequeue(VMCIQPair *qpair, // IN
void *buf, // IN
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIQPair_Peek)
ssize_t
VMCIQPair_Peek(VMCIQPair *qpair, // IN
void *buf, // IN
return result;
}
-#if defined __linux__ && !defined VMKERNEL
-EXPORT_SYMBOL(VMCIQPair_Enqueue);
-EXPORT_SYMBOL(VMCIQPair_Dequeue);
-EXPORT_SYMBOL(VMCIQPair_Peek);
-#endif
-
#if defined (SOLARIS) || (defined(__APPLE__) && !defined (VMX86_TOOLS)) || \
(defined(__linux__) && defined(__KERNEL__)) || \
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIQPair_EnqueueV)
ssize_t
VMCIQPair_EnqueueV(VMCIQPair *qpair, // IN
void *iov, // IN
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIQPair_DequeueV)
ssize_t
VMCIQPair_DequeueV(VMCIQPair *qpair, // IN
void *iov, // IN
*-----------------------------------------------------------------------------
*/
+VMCI_EXPORT_SYMBOL(VMCIQPair_PeekV)
ssize_t
VMCIQPair_PeekV(VMCIQPair *qpair, // IN
void *iov, // IN
return result;
}
-#if defined __linux__ && !defined VMKERNEL
-EXPORT_SYMBOL(VMCIQPair_EnqueueV);
-EXPORT_SYMBOL(VMCIQPair_DequeueV);
-EXPORT_SYMBOL(VMCIQPair_PeekV);
-#endif
-
#endif /* Systems that support struct iovec */
*-----------------------------------------------------------------------------
*/
-#ifdef __linux__
-EXPORT_SYMBOL(VMCI_GetContextID);
-#endif
-
+VMCI_EXPORT_SYMBOL(VMCI_GetContextID)
VMCIId
VMCI_GetContextID(void)
{
*----------------------------------------------------------------------
*/
-#ifdef __linux__
-EXPORT_SYMBOL(VMCI_Version);
-#endif
-
+VMCI_EXPORT_SYMBOL(VMCI_Version)
uint32
VMCI_Version()
{
*----------------------------------------------------------------------
*/
-#ifdef __linux__
-EXPORT_SYMBOL(VMCI_DeviceGet);
-#endif
-
+VMCI_EXPORT_SYMBOL(VMCI_DeviceGet)
Bool
VMCI_DeviceGet(void)
{
*----------------------------------------------------------------------
*/
-#ifdef __linux__
-EXPORT_SYMBOL(VMCI_DeviceRelease);
-#endif
-
+VMCI_EXPORT_SYMBOL(VMCI_DeviceRelease)
void
VMCI_DeviceRelease(void)
{
*----------------------------------------------------------------------
*/
-#ifdef __linux__
-EXPORT_SYMBOL(VMCIContext_GetPrivFlags);
-#endif
-
+VMCI_EXPORT_SYMBOL(VMCIContext_GetPrivFlags)
VMCIPrivilegeFlags
VMCIContext_GetPrivFlags(VMCIId contextID) // IN
{
*----------------------------------------------------------------------
*/
-#ifdef __linux__
-EXPORT_SYMBOL(VMCI_ContextID2HostVmID);
-#endif
-
+VMCI_EXPORT_SYMBOL(VMCI_ContextID2HostVmID)
int
VMCI_ContextID2HostVmID(VMCIId contextID, // IN
void *hostVmID, // OUT