#define PRODUCT_VERSION_WORKSTATION_100 PRODUCT_WORKSTATION_BRIEF_NAME " 10.x"
#define PRODUCT_VERSION_WORKSTATION_110 PRODUCT_WORKSTATION_BRIEF_NAME " 11.x"
#define PRODUCT_VERSION_WORKSTATION_120 PRODUCT_WORKSTATION_BRIEF_NAME " 12.x"
-#define PRODUCT_VERSION_WORKSTATION_130 PRODUCT_WORKSTATION_BRIEF_NAME " 2017"
+// Workstation 13.x is skipped.
+#define PRODUCT_VERSION_WORKSTATION_140 PRODUCT_WORKSTATION_BRIEF_NAME " Tech Preview 2017"
#define PRODUCT_VERSION_WORKSTATION_ENTERPRISE_1 "ACE 1.x"
#define PRODUCT_VERSION_WORKSTATION_ENTERPRISE_2 "ACE 2.0"
#define PRODUCT_VERSION_WORKSTATION_ENTERPRISE_25 "ACE 2.5"
#define PRODUCT_VERSION_MAC_DESKTOP_60 PRODUCT_MAC_DESKTOP_BRIEF_NAME " 6.x"
#define PRODUCT_VERSION_MAC_DESKTOP_70 PRODUCT_MAC_DESKTOP_BRIEF_NAME " 7.x"
#define PRODUCT_VERSION_MAC_DESKTOP_80 PRODUCT_MAC_DESKTOP_BRIEF_NAME " 8.x"
-#define PRODUCT_VERSION_MAC_DESKTOP_90 PRODUCT_MAC_DESKTOP_BRIEF_NAME " 2017"
+// Fusion 9.x is skipped.
+#define PRODUCT_VERSION_MAC_DESKTOP_100 PRODUCT_MAC_DESKTOP_BRIEF_NAME " Tech Preview 2017"
/*
* VDFS Versions
/*********************************************************
- * Copyright (C) 2008-2016 VMware, Inc. All rights reserved.
+ * Copyright (C) 2008-2017 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
#include <sys/param.h>
#include <sys/mount.h>
#include <CoreFoundation/CoreFoundation.h>
+#include <TargetConditionals.h>
+#if TARGET_OS_IPHONE
+#include <spawn.h>
+extern char **environ;
+#endif
#elif defined(__FreeBSD__)
#include <sys/param.h>
#include <sys/mount.h>
}
+#if TARGET_OS_IPHONE
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Posix_SplitCommands --
+ *
+ * Split the commands into arguments.
+ *
+ * Results:
+ * The length of the commands and the arguments.
+ *
+ * Side effects:
+ * NO
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+Posix_SplitCommands(char *command, // IN
+ char **argv) // OUT
+{
+ char *token;
+ char *savePtr;
+ char *str;
+ int count;
+ for (count = 0, str = command; ; str = NULL, count++) {
+ token = strtok_r(str, " ", &savePtr);
+ if (token == NULL) {
+ break;
+ }
+ if (argv != NULL) {
+ *argv = token;
+ argv++;
+ }
+ }
+ return count;
+}
+
+#endif
+
+
/*
*----------------------------------------------------------------------
*
return -1;
}
+#if TARGET_OS_IPHONE
+ pid_t pid;
+ int count;
+ char **argv;
+ char *commandCopy = strdup(command);
+ count = Posix_SplitCommands(commandCopy, NULL);
+ free(commandCopy);
+ if (!count) {
+ return -1;
+ }
+ argv = malloc(count * sizeof(char *));
+ commandCopy = strdup(command);
+ Posix_SplitCommands(commandCopy, argv);
+ ret = posix_spawn(&pid, argv[0], NULL, NULL, argv, environ);
+ free(argv);
+ free(commandCopy);
+#else
ret = system(tmpcommand);
+#endif
Posix_Free(tmpcommand);
VMXNET3_CMD_SET_POLLING,
VMXNET3_CMD_SET_COALESCE,
VMXNET3_CMD_REGISTER_MEMREGS,
+ VMXNET3_CMD_SET_RSS_FIELDS,
VMXNET3_CMD_FIRST_GET = 0xF00D0000,
VMXNET3_CMD_GET_QUEUE_STATUS = VMXNET3_CMD_FIRST_GET,
VMXNET3_CMD_GET_CONF_INTR,
VMXNET3_CMD_GET_ADAPTIVE_RING_INFO,
VMXNET3_CMD_GET_TXDATA_DESC_SIZE,
- VMXNET3_CMD_GET_COALESCE
+ VMXNET3_CMD_GET_COALESCE,
+ VMXNET3_CMD_GET_RSS_FIELDS,
} Vmxnet3_Cmd;
/* Adaptive Ring Info Flags */
#define VMXNET3_RCD_RSS_TYPE_TCPIPV4 2
#define VMXNET3_RCD_RSS_TYPE_IPV6 3
#define VMXNET3_RCD_RSS_TYPE_TCPIPV6 4
+#define VMXNET3_RCD_RSS_TYPE_UDPIPV4 5
+#define VMXNET3_RCD_RSS_TYPE_UDPIPV6 6
+#define VMXNET3_RCD_RSS_TYPE_ESPIPV4 7
+#define VMXNET3_RCD_RSS_TYPE_ESPIPV6 8
/* a union for accessing all cmd/completion descriptors */
typedef union Vmxnet3_GenericDesc {
#include "vmware_pack_end.h"
Vmxnet3_MemRegs;
+typedef enum Vmxnet3_RSSField {
+ VMXNET3_RSS_FIELDS_TCPIP4 = 0x0001,
+ VMXNET3_RSS_FIELDS_TCPIP6 = 0x0002,
+ VMXNET3_RSS_FIELDS_UDPIP4 = 0x0004,
+ VMXNET3_RSS_FIELDS_UDPIP6 = 0x0008,
+ VMXNET3_RSS_FIELDS_ESPIP4 = 0x0010,
+ VMXNET3_RSS_FIELDS_ESPIP6 = 0x0020,
+} Vmxnet3_RSSField;
+
/*
* If a command data does not exceed 16 bytes, it can use
* the shared memory directly. Otherwise use variable length
union Vmxnet3_CmdInfo {
Vmxnet3_VariableLenConfDesc varConf;
Vmxnet3_SetPolling setPolling;
+ Vmxnet3_RSSField setRSSFields;
__le64 data[2];
}
#include "vmware_pack_end.h"