#include "hgfsUtil.h"
#include "vmware.h"
#include "vm_basic_asm.h"
+#ifdef __APPLE__
+#include <TargetConditionals.h>
+#ifndef TARGET_OS_IPHONE
+#define TARGET_OS_IPHONE 0
+#endif
+#endif
#ifndef _WIN32
/*
HgfsConvertFromNtTimeNsec(struct timespec *unixTime, // OUT: Time in UNIX format
uint64 ntTime) // IN: Time in Windows NT format
{
-#ifndef VM_X86_64
+#if !defined(VM_X86_64) && !defined(__ANDROID__) && !TARGET_OS_IPHONE
uint32 sec;
uint32 nsec;
return -1;
}
-#ifndef VM_X86_64
+#if !defined(VM_X86_64) && !defined(__ANDROID__) && !TARGET_OS_IPHONE
Div643232(ntTime - UNIX_EPOCH, 10000000, &sec, &nsec);
unixTime->tv_sec = sec;
unixTime->tv_nsec = nsec * 100;
#ifdef sun
#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO)
#endif
+#ifdef __ANDROID__
+/*
+ * Android doesn't support setmntent(), endmntent() or MOUNTED.
+ */
+#define NO_SETMNTENT
+#define NO_ENDMNTENT
+#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO)
+#endif
/*
}
if (size != sizeof(VMBLOCK_FUSE_READ_RESPONSE)) {
- LOG(4, ("%s: Response too short (%"FMTSZ"d vs. %"FMTSZ"u).\n",
- __func__, size, sizeof(VMBLOCK_FUSE_READ_RESPONSE)));
+ /*
+ * Refer to bug 817761 of casting size to size_t.
+ */
+ LOG(4, ("%s: Response too short (%"FMTSZ"u vs. %"FMTSZ"u).\n",
+ __func__, (size_t)size, sizeof(VMBLOCK_FUSE_READ_RESPONSE)));
return FALSE;
}
mode_t vmbDeviceMode, // IN
Bool (*verifyBlock)(int fd)) // IN
{
+#if defined NO_SETMNTENT || defined NO_ENDMNTENT
+ NOT_IMPLEMENTED();
+ errno = ENOSYS;
+ return -1;
+#else
Bool found = FALSE;
int blockFd = -1;
char *realMntPoint;
out:
free(realMntPoint);
return blockFd;
+#endif
}