open-vm-tools-10.0.5 build 3227882
*	ae82fa6 [Bug 1526360] fix timestamp check
*	b510107 [Bug 1531545] Add an error handler to X11 resolutionSet
*	adab9c5 [Bug 1503195] Kill tasklet when unloading vmci module
*	35bcc69 [Bug 1519223] Avoid warning message when logging group is missing.
*	581f2d0 [Bug 1473600] Skip freezing autofs mounts.
*	8184e92 [Bug 1507819] Workaround fix to avoid rpc warning messages flooding by changing log level to debug.
*	eb47321 [Bug 1526327] make vmhgfs compatible with Linux kernel 4.2

open-vm-tools-10.0.0 build 3000743

*	Common versioning

*	Quiesced snapshots

*	hgfs-fuse

*	Logging changes

*	AsyncSocket changes

*	Change ASSERT macros to VERIFY

*	Additional locking fixes and optimizations

*	Unicode type and macro cleanup

*	Change glib logging in RpcChannel to use Debug/Warning/Panic.

*	Clean up HGFS server unpack file name V3 arguments

*	Fix nested logging for VmxLogger with vsocket channel.

*	Compile mac-rdpvcbridge from cart-dev

*	Implement VMware Tools for ESXi 6.0 guests.

*	Get rid of ASSERT_ALWAYS_AVAILABLE

*	Get rid of ASSERT_LENGTH.

*	Move ASSERT_OR_IN_PANIC() from public/vm_assert.h to vmkernel.

*	Make lib/location product-agnostic

*	desktopEvents: Leave libICE rug firmly under libSM.

*	Remove SLPv2

*	Provide a kill-switch for using vsocket in RpcChannel.

*	Use binary search tree to map guest os string to guest os enum.

*	codeset: use icuDir instead of libDir

*	Remove NR_MPNS_PER_PAGE

*	Make FileIO_AtomicUpdate fail gracefully when File_FullPath fails.

*	Merge atomic FetchAndAdd64 with ReadAdd64.

*	Rename Atomic_FetchAdd, part 1.

*	AsyncSocket: Remove UDP socket support.

*	Introduce Id_IsSetUGid for detecting setuid/setgid binaries.

*	Update WS, player version numbers on *-main branch.

*	Integrate all VIX changes from hosted13-pd-rel to vmcore-main.

*	Rename Atomic_FetchAnd*, part 5.

*	Cache Tools conf path.

*	No more Atomic_Fetch.

*	Add configuring of the Windows core dump flags for the tools service

*	Temporary fix for PR 1111448.

*	Add surface logging to basicOps

*	Id_IsSetUGid fails to compile on Android.

*	Add devel backdoor command to run replays inside frobos tests.

*	Save registers earlier during Panic.

*	Prepare the HGFS Windows client to use VMCI transport header version 2

*	Get Mac OS system version from (Server|System)Version.plist

*	WebMKS plumbing: vmx side

*	Create new V2 of VMCI transport header

*	   Minor logging cleanup in vmware-vprobe

*	Notify VMX when Toolsd is going down

*	Remove ovftool temporary fix.

*	Add /proc/interrupts and /proc/irq/* to vm-support

*	Remove HGFS from FreeBSD builds and packaging

*	Split DR6_ONES into DR6_DEFAULT and DR6_ONES

*	Add utilMem to Frobos

*	Support Intel RTM Debug behavior in VT mode.

*	MSG: Skip errno localization on unknown platforms.

*	Replace CPU_MemBarrier with Atomic_MFence

*	Prevent low privileged user from writable access to tools conf data

*	Change shutdown notification RPC failure message to debug.

*	Eliminate some "legacy IPC baggage".

*	Fix tools_obj_linux64 build (license file mismatch)

*	Convert the HGFS uses of ASSERT_DEVEL into ASSERT or remove

*	arm64 support in vm_basic_{types,defs}.h

*	Add an error function hook to PollDefault

*	arm64 support in vm_[basic_]asm.h

*	asyncWebSocket: improve rmks warning message when WebSocket connection fails due to bad SSL cert.

*	Implement MXUser semaphores on Mac OS with lib dispatch semaphores

*	Replace 3-clause BSD license template with 2-clause BSD license

*	vm_basic_{types,asm}.h: cleanup architecture #ifdefs

*	Add a surface flag for 16-byte image alignment in mobs

*	Change config.version from String to Long.

*	Fix HGFS server change notification packet handling.

*	Cleanup "vm_basic_defs.h"

*	vm_atomic: add ARM64 atomic operations.

*	Enable the HGFS VMCI VMX and HGFS server use the V2 header

*	Implement Devel ScreenShot command

*	Fix the HGFS protocol opcode to differentiate headers

*	vmkBoot: refactor serial, arm64 serial & panic.

*	vm_atomic: fix arm64 ReadIfWriteEqual atomics.

*	arm: bug fixes for uint*set implementations.

*	Rework the tools heartbeat code in the VMX.

*	vm_atomic: eliminate non-ASCII chars in comment.

*	Remove the incorrect immediate constraint from 64-bit atomic ops

*	Refactor code under guestinfo/getlib.

*	Remove __builtin_*_address(N) compile checks.

*	boot: misc. vmkernel changes to allow arm64 boot.c compile.

*	debug: move debug to main/x86, arm64 stubs.

*	prda/specialstack: refactor to split out arch deps, arm64 support.

*	Cleanup guestinfo plugin header dependency.

*	Change WSAAddressToString to WSAAddressToStringA

*	  Handle EINVAL for preadv and pwritev.

*	Change GET_CURRENT_LOCATION definition.

*	Check if __GLIBC_PREREQ is defined before using it.

*	Add support for IOMMU guest addresses > 16TB.

*

*	Fix Atomic_Read on ARMv7.

*	Create a trivial view when both the texture and the view are R24G8 class.

*	vm_atomic: fix ARM 32/64-bit Atomic_Read.

*	OvhdMem refactor + pull from vmioplugin branch

*	cpuset/vm_basic_asm: use standard clr/ctz primitives.

*	vm_basic_asm: fix windows build breakage.

*	vSock: Rename "VMCI Sockets".

*	Disable nullDriver by default and add a config switch to enable it.

*	First submit of the VDTI PCI Device.

*	  Cleanup/Rationalize coreDump

*	vSock VMX: Introduce a separate sendCb field

*	Don't define g_info if it is available.

*	A virtual USB video device backend.	

*	A virtual video device backend.

*	Skip freezing remote mounts.

*	lib/file: Various fixes to FileIOP(read|write)vInternal and FileIO_(Readv|Writev).

*	Use int 31 instruction to trigger an assert in the VMKernel

*	vm_basic_asm: fix uint32set for arm64.

*	Clean up of APIs used by the HGFS server library

*	Clean up the HGFS server shares interface to the HGFS server part II

*	Ignore disk UUIDs from the paths to be frozen.

*	Clean up the HGFS server use of the policy share enumeraton APIs

*	fix HostinfoGetOSShortName to support Debian 7.x

*	remove unnecessary constraints for ABSOLUTELY_NOINLINE define

*	More clean up the HGFS server manager, policy manager APIs

*	Remove MPN32 related macros.

*	lib/uuid: Add CreateRandomEFI, and cleanup

*	Fix buffer overflow in perfMonLinux

*	AsyncSocket: hostname/IP string connection functions should attempt both IPv4 and IPv6 connections.

*	lib/lock: lock tracking tree optimization

*	Fast send on the asynNamedPipe if Write completes synchronously.

*	increase MAX_MPN to 38 bits

*	finish conversion of invalid_mpn64 and max_mpn64

*	Change Mul64x3264 family of functions to round instead of truncating

*	Add CACHELINE_SIZE to vm_basic_defs.h.	

*	Memory is accessed after being freed in function

*	Add some debug noise to RPCs received in guest.

*	Add SMAP support to MMU page walkers and MonTLB

*	lib/file: File_Rotate needs some protection

*	Hgfs VMCI: move packet max size to the correct location

*	Hgfs Server: remove transport only header file from the server.

*	Log errors in RandomBytesWin32.

*	Defer the RunScript cleanup when VIX commands are restricted.

*	Add support in resolution set to log multiple sessions in RDSH.

*	Make Clamped_SAdd32 more robust against compiler options

*	Compare the remote FS type strings the right way.

*	VIX plugin under vmusr should not register for TOOLS_CORE_SIG_IO_FREEZE.

*	Add runtime macros to check type of tools service.

*	vm_atomic: remove unfenced atomic operations.

*	vm_atomic: LOCK-like semantics for arm64 atomics.

*	refcount/vm_basic_asm: multi-architecture memory barriers.

*	Hgfs Server: Fix unpacking of protocol header unused fields

*	Enlarge MAX_IFACES to ensure vmtools could get a valid GOS IP throguh NetUtil_GetPrimaryIP().

*	Change BPN to be a 64 bit type.

*	lib/lock: MXUser_Control* -> typed functions [trivial?]

*	fix bad error

*	ARM64: Add more basic assembler support

*	Guest Tools: Add memNeeded for Windows and Linux and handle versioning

*	Fix incorrect LRU file accounting for memNeeded on Linux

*	Change the bit representation of BPN to make way for NVM.

*	tools perf mon: collect more stats from /proc/meminfo

*	Remove vmxwifi.sys and macWireless_defs.h

*	tools perf mon: refactor

*	tools data collection: Collect all of the new Linux data	

*	Guest stats: fix the time base

*	gos tables: Table must be sorted; reinsert "coreos-64" accordingly

*	guest performance data: no need to have a maximum RPC transfer size

*	guest perf stats: replumb GuestInfo_PerfMon

*	guest perf stats: GuestInfo_PerfMon builds the RPC data itself

*	guest perf data: collect the Linux data

*	guest perf data: return the new protocol

*	guest perf stats: ice the cake (add some polish)

*	guest perf stats: Linux goes to the new format

*	Hgfs Posix Server: fix the writes to not exceed max file size

*	Stick backdoor behavior after vSocket connection failure.

*	Hgfs Posix Server: fix Solaris tools obj builds for log statements

*	Fix memory leak in hgfs server.

*	Implement QuadBlit for DX11Renderer.

*	Add feature-specific RDE Dev Targets - folderRedirection, tsmmr, viewMP

*	MX_Lock should not use HLE on unpatched Haswell systems

*	Hgfs Posix Server: add some useful logging for symlink names

*	lib/file: Don't leak a filename in FileRotateByRenumber.

*	Hgfs Posix Server: add more useful logging to open

*	Hgfs Posix Server: fix open requests failing EAGAIN (EWOULDBLOCK)

*	Sometimes channel can be NULL, this will make vmtools panic.

*	lib: misc/sig support for arm64 (redux).

*	HostType: stop using sysctl

*	authPosix: use getspent when using shadow password, but not PAM

*	Added protocol selection to bora AsyncWebSocket.- Changed VNC Client offer 'vmware-vvc' protocol as an additional protocol.

*	Enable 3D with DX11Renderer and port over the existing PROTOTYPE RenderOps functions.

*	Create the support dir under /tmp instead of CWD.

*	Disable NullDriver backend only for forceQuiece case.

*	Hgfs Server: fix malformed symlink creation requests

*	Hgfs Server: fix check malformed read packets

*	Fix Ubuntu errors in the vm-support script.

*	Expose BDOOR_CMD_VCPU_MMIO_HONORS_PAT to guest.

*	Add optional websocket protocols parameter to AsyncSocket_ListenWebSocketUDS.  If NULL then default (legacy) protocols are used.

*	Allow the network script to bring each individual interface up/down.

*	deployPkg plugin: make deployPkg.cpp build as C or C++

*	GOSTable: Plumb vmkernel6 as a separate bit

*	add deployPkg files to open-vm-tools

*	Introduce mkfsPmem, libpmem for managing pmem resources via the kernel from user-space.

*	Allow to queue MCE requests form the kernel to the VMM.

*	HGFS: Remove R/R

*	Replace PUSHF/POPF with STAC/NOP when setting EFLAGS.AC

*	lib/file: hostd crashes in assertion failure due to file list

*	Tools: Create GuestInfo_GetPrimaryIP as a IPv6 compliant version of NetUtil_GetPrimaryIP

*	Remove memNeeded calculation from the guest tools

*	Move SIZE_xxBITS to common architecture file.

*	GOSTable: Windows 10 as a unique guest

*	Set _FILE_OFFSET_BITS=64 for Solaris

*	Plumbing to expose (whitelisted) vsi-based stats in guest

*	Assorted _FILE_OFFSET_BITS=64 / _LARGEFILE64_SOURCE fixups

*	Serial: [2/16] Serial8250 - refactor into generic and platform parts.

*	lib/log: Improve the level filtering implementation and documentation

*	lib/log: no need to "blip" the lock

*	lib/misc: header clean up

*	Add 16 bits atomics to vm_atomic.h.

*	Add 16 bits atomics for arm64

*	Clean up some file headers

*	Begin plumbing guest mks stats out to the host.

*	lib/log: improved documentation in log.h

*	Converting MPN to MPN32.

*	Reimplement guestproxycerttool.pl in C.

*	Atomic Boolean support

*	Add grabbitmqProxy plugin to open-vm-tools.

*	Windows 10: an all Windows 10 macro

*	Remove some vacuous FileIO usage

*	Introducing 64-bit MPN type.

*	mks: add shared-secret authentication for Blast websocket connections

*	Windows 10: add macros for all 32 and all 64 bit

*	Add guestproxycerttool (C-implementation) to open-vm-tools and OSPs.

*	cleanup app balloon in vmm, vmx, and parts of vmkernel

*	Honour panic.breakOnPanic on Posix.

*	hashTable: free function work like our other free functions

*	Introduce certificate hash verification in blast native clients.

*	Forward declare sslverifyparam in ssldirect.h

*	asyncWebsocket: move WebSocketHandshakeState into asyncWebSocket.c

*	RecordReplayRemoval: make RR go away from automation tools.

*	tools: improved memNeeded

*	guest stats: Use DynBufs

*	guest tools: a bit of consolidation

*	guest stats: rates in pages per second

*	Guest stats: Dynamically capture stats in Linux

*	guestStats: optimize memory allocation

*	guest stats: Linux deals with overflow

*	guest stats: consistent open file failure messages

*	GuestStat: improve function header

*	GuestStat: more function header cleanup

*	Stop publishing guest stats from VSI/GuestMemInfo structure.

*	Guest Stats: extensible reporting

*	Use new #define _DEFAULT_SOURCE to build open-vm-tools.

*	Publish Windows guest stats via V5 format

*	Guest stats: Only populate Linux legacy values that have been consumed

*	guest stats: Linux publish names as defines

*	Windows stat code cleanup

*	GuestStat: official registed the build in names

*	Adjust lock ranks for IO filters.

*	asyncWebSocket: remove hybi designator and consolidate code

*	asyncWebSocket: simplify protocol lists and framing

*	asyncSocket: simplify the interface for specifying websocket protocols

*	GuestStat: Name data is properly name string

*	lib/misc: Support Util_IsAbsolutePath on Solaris and FreeBSD

*	Hgfs Server: fix unpack of file name args for directory open

*	Minor updates to windows stat code

*	GuestStats: Better data validation and names

*	Debug log messages and minor fixes.

*	Add TLS caching for gettid calls on Linux

*	Add File_DeleteDirectoryContent.

*	Allow vm-support script execution only for root user.

*	GuestStats: rationalize the stat datum bits

*	No more MPN64 type.

*	Gettid TLS: fix coredumping

*	sigPosix scrub: more consistent self-signal behavior and remove unused code

*	Guest Stats: fix alphabetization

*	Publish stats for Windows pagefile size and used subset in KB

*	GuestOps: Set file ownership before setting file permissions.

*	GuestStats: no time units.

*	GuestSDK: remove vmtools.dll/so dependency

*	Use new generic way to collect guest stats and remove unused legacy guest stats.

*	Remove vmioplugin.

*	Use GOnce in pollGtk instead of a static mutex.

*	Update hgfsServer alias code.

*	Inline ASM for rotate left/right instruction

*	Add backdoor command to restrict vmmouse

*	Add Posix File to hgfsURI

*	lib/file: FileSleeper must really sleep

*	Fix unnecessary cast

*	Add LIKELY/UNLIKELY into MXUserRec

*	Fix argument order for InterlockedCompareExchange8

*	rmks/ssl: change SSL verification for View/Blast RMKS connections to reject mismatched thumbprint always

*	GuestStats: Linux active/inactive anon buffers

*	GuestStats: order the linux stats

*	GuestStats: Clean up include file

*	Hgfs Server: enhance logging for packet request ID

*	Allow RpcVMX_LogV to run without calling malloc.

*	Update the stat IDs list.

*	Don't mount alias target volumes while resolving HGFS file attributes

*	Remove the executable bit from various source files

*	add some improved cert debug noise

*	  Basic infrastructure support for guestIntegrity backdoor calls.

*	Implement MXUser semaphores on Mac OS with lib dispatch semaphores

*	Add a backdoor command for mksStats snapshots.

*	add vmhgfs-fuse to open-vm-tools

*	vm_basic_defs/gdb: use non-builtin offsetof for vmk gdb macros.

*	Implement MXUserEvent

*	Remove updateAgent code.

*	Change default sampling rate for guest stats to 20 seconds.

*	Include cstring to avoid 'memset not in scope' error.

*	Remove guestStats that are beyond 60u1 scope.

*	Fixes for use_after_free, double_free and double_close.

*	Use a global lock for protecting gLoggingStopped.

*	change default debugging level and location

*	adjust logging noise for vmtoolsd

*	clean up debug & warning messages in guestInfo plugin

*	clean up logging in vix plugin

*	recategorize powerOps logging messages

*	gather new default Tools logs with vm-support

*	add toolbox-cmd support for log`

open-vm-tools-9.10.2 build 2822639

*	Use new #define _DEFAULT_SOURCE to build OVT.
	
	glibc-2.20 has deprecated the _BSD_SOURCE and _SVID_SOURCE
	macros.  Starting with glibc-2.19 _DEFAULT_SOURCE is
 	recommended.  Keep the old macros because someone might
 	want to build open-vm-tools with an older glibc version.
	
	With glibc-2.20 VGAuthLog.c was picking the POSIX
 	definition for strerror_r that returns int type.
	That does not work with glibc-2.2, which has only one
 	definition with return type char *.  For better
 	compatibility with various glibc versions, use the
	_GNU_SOURCE definition of strerror_r that returns char *.
	
*	Fix a compilation error in toolboxcmd-shrink.c with gcc 5.0.1.

	Building open-vm-tools for Fedora 22 hit a compilation
 	error with gcc 5.0.1.

	Also remove some redundant code. ShrinkGetMountPoints()
	calls ShrinkGetWiperState() and handles the
 	WIPER_UNAVAILABLE and WIPER_DISABLED cases. The call to
 	ShrinkGetWiperState() is redundant because wiper state
	will always be WIPER_ENABLED.
	
*	Fix the compiler version check and include mul64.h.
	
	The compiler check was intended to be >= GCC 4.4, but it
	was insisting that the major and minor version numbers
	of GCC both be >= 4, so it was breaking on Fedora 22,
 	which has GCC 5.1.1, and for a user who was building with
 	GCC 4.3.
	
	For old compilers we need to provide mul64.h, so include
	it in open-vm-tools.
	
*	Retry sending vmbackup event with elevated privileges.
	
	A privilege check on the host side was implemented in
	ESXi 5.5. Due to this change, once guest/Toolsd sends
	iopl_elevation capability (RPC msg
	"tools.capability.iopl_elevation") to an ESXi 5.5 host,
	it requires guest to elevate the privileges before the
	guest sends vmbackup event. Linux Tools version 9.4.x
	sends this capability and enables this behavior on the
	host.  Tools version 9.10.0 does not send iopl_elevation
	capability and does not require privilege elevation.
	Therefore, in order to workaround the host behavior, we
	retry sending the vmbackup event after elevating the guest
	privileges. To avoid doubling the RPC messages from
 	Toolsd, we also cache the last failure result from the
	unprivileged attempt for the duration of current vmbackup
	operation.
	
*	vSock changes to prepare for FreeBSD
	
	Add support to header files for FreeBSD.  For now just
	add some stubs that return errors.
	 
*	add a -h option to vgauth

	vgauth is not normally run from a command line, but
	add a -h option to provide minimal documentation.
	
*	Bump Tools version to 9.10.2 for open-vm-tools release.
	
*	Workaround NFS open bug by retrying on ESTALE
	
	RFC 1341775 uncovered an NFS client open race which causes 
	open to fail with ESTALE if there is another host trying to
	atomically swap the file at the same time. This causes the file to
	be unlinked which might cause the thread trying to open it (for 
	acquiring lock) to fail with ESTALE. 

	Implement a very simple fix which retries for 3 seconds
	upon getting ESTALE. 
 
*	Fix the HGFS protocol opcode to differentiate headers
	
	For differentiating the older HgfsRequest and the new
	HgfsHeader structures sent in an HGFS packet, the old
	header opcode is set to 0xff using HGFS_V4_LEGACY_OPCODE.
	
	This should have been made a specific value of the HGFS
	opcode enum and named for what it really means, but the
	enum type could clash with the HGFS_V4_LEGACY_OPCODE by
	accident if enough values are added.
	
	There is a potential issue with the newer HgfsHeader
	object where it overlays the old HgfsRequest op field.
	The new header tries to break the field into the first
	byte and save the remaining 3 bytes for a different use.
 	However, this cannot be done as the current and shipping
 	HGFS server code uses the HgfsRequest and op field
	(4 bytes) to verify the value is 0xFF. If this is a match
 	then it is deemed that the packet has the new header. If
 	the client tried to use any of the new header's reserved2
 	fields (overlayed with part of the old header op field)
	then the HGFS server test for a new header would fail to
 	match.
	
	Fixed the HgfsHeader opcode fields to actually be the
	correct HgfsOp type.

	Removed the define for HGFS_V4_LEGACY_OPCODE and made it
	part of the opcode enum to ensure correct type checking.

	Added an assert on compile to ensure that the HGFS opcode
	values don't encroach on the invalid opcode used to
	determine the header type.

	Renamed the HGFS_V4_LEGACY_OPCODE to conform with the
	existing enum values and state exactly what its meaning
	is: HGFS_OP_NEW_HEADER.
	
	Now the 4 bytes cannot be used for anything but the
	protocol opcode new header value. This also corrects any
	strict typing by compilers for building open vm tools in
	newer guest operating systems.
	
*	Thaw filesystems when the snapshot commit message to VMX fails.  
	
	If it takes a long time to freeze filesystems, VMX may
	timeout the snapshot operation so the commit fails.
	After this happens, thaw the frozen filesystems.
	
*	open-vm-tools: fixes to build on FreeBSD 10
	
	Various fixes to make open-vm-tools build on FreeBSD:

	- disable vsock for OSes other than Linux
	- define CheckSanity only ifdef VMX86_DEBUG
	- make build of hgfsUriPosix depend on having gtkmm,
	  and enable on FreeBSD
	- xferlogs.c does not need wchar.h

	Instructions for building on FreeBSD:

	1. Install gcc48 with 'pkg install gcc'
	2. Install build dependencies:
	   glib libdnet libXinerama libXrandr gtk2 gtkmm24
	3. autoreconf -i --force
	4. env CC=gcc48 CFLAGS=-Wl,-rpath=/usr/local/lib/gcc48
	       CPPFLAGS="-I/usr/local/include/"
	       LIBS="-L/usr/local/lib" 
	       ./configure --without-kernel-modules
	       --without-xmlsecurity --without-icu
	       --disable-vgauth --disable-grabbitmqproxy
	       --disable-deploypkg
	5. make
	 
*	Don't build vmxnet driver for Linux >= 3.3

	The vmxnet driver does not build for Linux kernel
	versions >= 3.3.

*	Don't build HGFS kernel driver for Linux >= 3.17.0

	The HGFS kernel component is old and has many changes missing
	to support newer Linux kernel releases.  There will be a newer
	update coming which will include all of the changes necessary
	for newer Linux kernels to be supported.

	For now, we are limiting the building of the current HGFS
	kernel client to Linux kernels 3.17.0 and earlier for this
	release of open-vm-tools. This will allow the build of the
	open-vm-tools package to complete on newer kernel versions.

