#include "log.h"
#ifdef USE_PAM
-# include "file.h"
-# include "config.h"
-# include "localconfig.h"
-#if defined(__APPLE__) && (MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_5)
-#include <pam/pam_appl.h>
-#else
-#include <security/pam_appl.h>
-#endif
-# include <dlfcn.h>
+# include "file.h"
+# include "config.h"
+# include "localconfig.h"
+# if defined __APPLE__
+# include <AvailabilityMacros.h>
+# if MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_5
+# include <pam/pam_appl.h>
+# else
+# include <security/pam_appl.h>
+# endif
+# else
+# include <security/pam_appl.h>
+# endif
+# include <dlfcn.h>
#endif
#if defined(HAVE_CONFIG_H) || defined(sun)
if (!symbol) {
Log("PAM library does not contain required function: %s\n",
dlerror());
-
+ dlclose(pam_library);
return FALSE;
}
#define ACRONIS_EXTENSION "tib"
#define OPEN_VM_FORMAT_EXTENSION "ovf"
#define ARCHIVED_OPEN_VM_FORMAT_EXTENSION "ova"
+#define NAMESPACEDB_EXTENSION "db"
// "xvm" // VMware console configuration file
/*
LOGLEVEL_VAR(vflash), \
LOGLEVEL_VAR(vva), /* apps/rde/vva */ \
LOGLEVEL_VAR(ftConfig), /*lib/ftConfig */ \
+ LOGLEVEL_VAR(vmname), /* lib/vmname */ \
/* end of list */
LOGLEVEL_EXTENSION_DECLARE(LOGLEVEL_USER);
void MsgList_Append(MsgList **tail, const char *idFmt, ...) PRINTF_DECL(2, 3);
void MsgList_VAppend(MsgList **tail, const char *idFmt, va_list args);
void MsgList_AppendStr(MsgList **tail, const char *id);
+void MsgList_AppendMsgList(MsgList **tail, MsgList *messages);
void MsgList_Log(const MsgList *messages);
char *MsgList_ToString(const MsgList *messages);
#define RANK_scsiStateLock (RANK_libLockBase + 0x5060)
#define RANK_parInitLock (RANK_libLockBase + 0x5070)
#define RANK_namespaceLock (RANK_libLockBase + 0x5080)
+#define RANK_vvolLibLock (RANK_libLockBase + 0x5090)
/*
* VMDB range:
Bool StrUtil_IsASCII(const char *s);
Bool StrUtil_VDynBufPrintf(struct DynBuf *b, const char *fmt, va_list args);
-Bool StrUtil_DynBufPrintf(struct DynBuf *b, const char *fmt, ...);
-void StrUtil_SafeDynBufPrintf(struct DynBuf *b, const char *fmt, ...);
+Bool StrUtil_DynBufPrintf(struct DynBuf *b, const char *fmt, ...) PRINTF_DECL(2, 3);
+void StrUtil_SafeDynBufPrintf(struct DynBuf *b, const char *fmt, ...) PRINTF_DECL(2, 3);
void StrUtil_SafeStrcat(char **prefix, const char *str);
void StrUtil_SafeStrcatFV(char **prefix, const char *fmt, va_list args);
# endif
# elif defined(VMX86_VPX)
# define PRODUCT_LICENSE_VERSION "5.0"
+# define PRODUCT_LICENSE_FILE_VERSION "5.1.0.6"
# elif defined(VMX86_WBC)
# define PRODUCT_LICENSE_VERSION "1.0"
# elif defined(VMX86_SDK)
#define PRODUCT_VERSION_MAC_DESKTOP_3 PRODUCT_MAC_DESKTOP_BRIEF_NAME " 3.x"
#define PRODUCT_VERSION_MAC_DESKTOP_40 PRODUCT_MAC_DESKTOP_BRIEF_NAME " 4.0"
#define PRODUCT_VERSION_MAC_DESKTOP_50 PRODUCT_MAC_DESKTOP_BRIEF_NAME " 5.0"
+#define PRODUCT_VERSION_MAC_DESKTOP_2013 PRODUCT_MAC_DESKTOP_BRIEF_NAME " Boo Berry"
/*
}
+/*
+ *-----------------------------------------------------------------------------
+ *
+ * MsgList_AppendMsgList --
+ *
+ * Append the 'messages' to an existing MsgList, 'list'. Memory
+ * owner ship is transfered to 'list'.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * Callers are responsible to free the returned MsgList.
+ *
+ *-----------------------------------------------------------------------------
+ */
+
+void
+MsgList_AppendMsgList(MsgList **list, // IN/OUT
+ MsgList *messages) // IN
+{
+ if (list != NULL && messages != NULL) {
+ MsgList *head = messages;
+ while (messages->next != NULL) {
+ messages = messages->next;
+ }
+ messages->next = *list;
+ *list = head;
+ } else {
+ MsgList_Free(messages);
+ }
+}
+
+
/*
*-----------------------------------------------------------------------------
*
/*********************************************************
- * Copyright (C) 2006 VMware, Inc. All rights reserved.
+ * Copyright (C) 2006-2012 VMware, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
*------------------------------------------------------------------------------
*/
-static INLINE VMCIHashEntry *
+static VMCIHashEntry *
VMCIHashTableGetEntryLocked(VMCIHashTable *table, // IN
VMCIHandle handle) // IN
{
*------------------------------------------------------------------------------
*/
-static INLINE int
+static int
VMCIHashTableReleaseEntryLocked(VMCIHashTable *table, // IN
VMCIHashEntry *entry) // IN
{
/*********************************************************
- * Copyright (C) 2010 VMware, Inc. All rights reserved.
+ * Copyright (C) 2010-2012 VMware, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
if (!myQPair) {
return VMCI_ERROR_NO_MEM;
}
- memset(myQPair, 0, sizeof *myQPair);
myQPair->produceQSize = produceQSize;
myQPair->consumeQSize = consumeQSize;
*-----------------------------------------------------------------------------
*/
-static INLINE ssize_t
+static ssize_t
EnqueueLocked(VMCIQueue *produceQ, // IN
VMCIQueue *consumeQ, // IN
const uint64 produceQSize, // IN
*-----------------------------------------------------------------------------
*/
-static INLINE ssize_t
+static ssize_t
DequeueLocked(VMCIQueue *produceQ, // IN
VMCIQueue *consumeQ, // IN
const uint64 consumeQSize, // IN
uint32 port) // IN
{
ASSERT(addr);
- memset(addr, 0, sizeof *addr);
VSockAddr_InitNoFamily(addr, cid, port);
addr->svm_family = VMCISockGetAFValueInt();
VSOCK_ADDR_ASSERT(addr);
uint32 port) // IN
{
ASSERT(addr);
- memset(addr, 0, sizeof *addr);
+ memset(addr, 0, sizeof *addr);
#if defined(__APPLE__)
addr->svm_len = sizeof *addr;
#endif
-
addr->svm_cid = cid;
addr->svm_port = port;
VSOCK_ADDR_NOFAMILY_ASSERT(addr);
// DIX type fields we care about
typedef enum {
- ETH_TYPE_IPV4 = 0x0800,
- ETH_TYPE_IPV6 = 0x86DD,
- ETH_TYPE_ARP = 0x0806,
+ ETH_TYPE_IPV4 = 0x0800,
+ ETH_TYPE_IPV6 = 0x86DD,
+ ETH_TYPE_ARP = 0x0806,
ETH_TYPE_RARP = 0x8035,
ETH_TYPE_LLDP = 0x88CC,
+ ETH_TYPE_CDP = 0x2000,
ETH_TYPE_AKIMBI = 0x88DE,
ETH_TYPE_VMWARE = 0x8922,
ETH_TYPE_802_1PQ = 0x8100, // not really a DIX type, but used as such
ETH_TYPE_LLC = 0xFFFF, // 0xFFFF is IANA reserved, used to mark LLC
} Eth_DixType;
typedef enum {
- ETH_TYPE_IPV4_NBO = 0x0008,
- ETH_TYPE_IPV6_NBO = 0xDD86,
- ETH_TYPE_ARP_NBO = 0x0608,
+ ETH_TYPE_IPV4_NBO = 0x0008,
+ ETH_TYPE_IPV6_NBO = 0xDD86,
+ ETH_TYPE_ARP_NBO = 0x0608,
ETH_TYPE_RARP_NBO = 0x3580,
ETH_TYPE_LLDP_NBO = 0xCC88,
+ ETH_TYPE_CDP_NBO = 0x0020,
ETH_TYPE_AKIMBI_NBO = 0xDE88,
ETH_TYPE_VMWARE_NBO = 0x2289,
ETH_TYPE_802_1PQ_NBO = 0x0081, // not really a DIX type, but used as such
ret = B_FALSE;
}
- VMXNET3_DEBUG(dp, 2, "getcapab(0x%x) -> %s\n", capab, ret ? "yes" : "no");
+ VMXNET3_DEBUG(dp, 3, "getcapab(0x%x) -> %s\n", capab, ret ? "yes" : "no");
return ret;
}
#include "system.h"
#include "util.h"
#include "vmcheck.h"
+#include "vm_tools_version.h"
#include "vmware/guestrpc/tclodefs.h"
#include "vmware/tools/log.h"
#include "vmware/tools/utils.h"
ToolsCore_ReloadConfig(state, FALSE);
+ /*
+ * Useful for debugging purposes. Log the vesion and build information.
+ */
+ g_message("Tools Version: %s (%s)\n", TOOLS_VERSION_EXT_CURRENT_STR, BUILD_NUMBER);
+
/* Initializes the app context. */
gctx = g_main_context_default();
state->ctx.version = TOOLS_CORE_API_V1;