ASSERT(path1);
ASSERT(path2);
-#if defined(VMX86_SERVER)
- {
- Unicode fs1;
- Unicode fs2;
-
- fs1 = Posix_RealPath(path1);
- fs2 = Posix_RealPath(path2);
-
- /*
- * ESX doesn't have real inodes for VMFS disks in User Worlds. So only
- * way to check if a file is the same is using real path. So said Satyam.
- */
-
- if (fs1 && Unicode_StartsWith(fs1, VCFS_MOUNT_POINT)) {
- Bool res;
-
- res = (!fs2 || Unicode_Compare(fs1, fs2) != 0) ? FALSE : TRUE;
-
- Unicode_Free(fs1);
- Unicode_Free(fs2);
-
- return res;
- }
-
- Unicode_Free(fs1);
- Unicode_Free(fs2);
- }
-#endif
-
/*
* First take care of the easy checks. If the paths are identical, or if
* the inode numbers don't match, we're done.
VIX_DEFINE_COMMAND_INFO(VIX_COMMAND_READ_VARIABLE,
VIX_COMMAND_CATEGORY_ALWAYS_ALLOWED),
VIX_DEFINE_COMMAND_INFO(VIX_COMMAND_WRITE_VARIABLE,
- VIX_COMMAND_CATEGORY_ALWAYS_ALLOWED),
+ VIX_COMMAND_CATEGORY_MIXED),
VIX_DEFINE_UNUSED_COMMAND,
VIX_DEFINE_UNUSED_COMMAND,
VIX_DEFINE_COMMAND_INFO(VIX_COMMAND_CONNECT_DEVICE,
static Bool GHITcloGetExecInfoHash(RpcInData *data);
DynBuf gTcloUpdate;
-static GHIPlatform *ghiPlatformData;
-DblLnkLst_Links launchMenu;
+// The pointer to the platform-specific global state.
+static GHIPlatform *ghiPlatformData = NULL;
/*
*----------------------------------------------------------------------------
GHI_Init(VMU_ControllerCB *vmuControllerCB, // IN
void *ctx) // IN
{
- Debug("%s\n", __FUNCTION__);
-
- DblLnkLst_Init(&launchMenu);
+ Debug("%s: Enter.\n", __FUNCTION__);
+ // Call the platform-specific initialization function.
ghiPlatformData = GHIPlatformInit(vmuControllerCB, ctx);
+ if (!ghiPlatformData) {
+ // TODO: We should report this failure to the caller.
+ Debug("%s: GHIPlatformInit returned NULL pointer!\n", __FUNCTION__);
+ }
+
+ Debug("%s: Exit.\n", __FUNCTION__);
}
* commands.
*/
VIX_COMMAND_CATEGORY_PRIVILEGED,
+
+ /*
+ * A command that may or may not be privileged. Usually, extra inspection
+ * of the payload is required to make the determination. This should be
+ * used sparingly, since must always be accompanied by "deep packet
+ * inspection" code in the VMX (mainDispatch.c).
+ */
+ VIX_COMMAND_CATEGORY_MIXED,
} VixCommandSecurityCategory;
/*
#define PLAYER_VERSION "e.x.p"
#define V2V_VERSION "e.x.p"
#define V2V_FILE_VERSION 1,0,0,0
-#define FUSION_VERSION "3.0.1"
+#define FUSION_VERSION "3.0.2"
// These must match VIE_FILEVERSION above
#define SYSIMAGE_VERSION "4.0.0"
uint32 dontPostActions;
} VmxnetVMKShared;
+#if defined VMX86_VMX || defined VMKERNEL
+
/*
* Inline functions used to assist the implementation of the vmxnet interface.
*/
Vmxnet2_PutRx(Vmxnet2_RxRingEntry *rre, uint32 pktLength, uint16 ownership)
{
rre->actualLength = pktLength;
+ COMPILER_MEM_BARRIER();
rre->ownership = ownership;
}
{
return ri->base + idx;
}
+
+#endif /* defined VMX86_VMX || defined VMKERNEL */
+
#endif