/*********************************************************
- * Copyright (C) 2010-2016 VMware, Inc. All rights reserved.
+ * Copyright (C) 2010-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 "hgfsServerParameters.h"
#ifdef _WIN32
-#define HGFS_REQUEST_WIN32_SUPPORTED HGFS_REQUEST_SUPPORTED
-#define HGFS_REQUEST_POSIX_SUPPORTED HGFS_REQUEST_NOT_SUPPORTED
+#define HGFS_OP_CAPFLAG_WIN32_IS_SUPPORTED HGFS_OP_CAPFLAG_IS_SUPPORTED
+#define HGFS_OP_CAPFLAG_POSIX_IS_SUPPORTED HGFS_OP_CAPFLAG_NOT_SUPPORTED
#else
-#define HGFS_REQUEST_WIN32_SUPPORTED HGFS_REQUEST_NOT_SUPPORTED
-#define HGFS_REQUEST_POSIX_SUPPORTED HGFS_REQUEST_SUPPORTED
+#define HGFS_OP_CAPFLAG_WIN32_IS_SUPPORTED HGFS_OP_CAPFLAG_NOT_SUPPORTED
+#define HGFS_OP_CAPFLAG_POSIX_IS_SUPPORTED HGFS_OP_CAPFLAG_IS_SUPPORTED
#endif
#define HGFS_ASSERT_PACK_PARAMS \
* This is the default/minimal set of capabilities which is supported by every transport.
* Every transport and session may have additional capabilities in addition to these.
*/
-static HgfsCapability hgfsDefaultCapabilityTable[] =
+static HgfsOpCapability hgfsDefaultCapabilityTable[] =
{
- {HGFS_OP_OPEN, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_READ, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_WRITE, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_CLOSE, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_SEARCH_OPEN, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_SEARCH_READ, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_SEARCH_CLOSE, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_GETATTR, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_SETATTR, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_CREATE_DIR, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_DELETE_FILE, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_DELETE_DIR, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_RENAME, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_QUERY_VOLUME_INFO, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_OPEN_V2, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_GETATTR_V2, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_SETATTR_V2, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_SEARCH_READ_V2, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_CREATE_SYMLINK, HGFS_REQUEST_POSIX_SUPPORTED},
- {HGFS_OP_SERVER_LOCK_CHANGE, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_CREATE_DIR_V2, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_DELETE_FILE_V2, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_DELETE_DIR_V2, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_RENAME_V2, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_OPEN_V3, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_READ_V3, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_WRITE_V3, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_CLOSE_V3, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_SEARCH_OPEN_V3, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_SEARCH_READ_V3, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_SEARCH_CLOSE_V3, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_GETATTR_V3, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_SETATTR_V3, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_CREATE_DIR_V3, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_DELETE_FILE_V3, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_DELETE_DIR_V3, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_RENAME_V3, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_QUERY_VOLUME_INFO_V3, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_CREATE_SYMLINK_V3, HGFS_REQUEST_POSIX_SUPPORTED},
- {HGFS_OP_SERVER_LOCK_CHANGE_V3, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_WRITE_WIN32_STREAM_V3, HGFS_REQUEST_WIN32_SUPPORTED},
- {HGFS_OP_CREATE_SESSION_V4, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_DESTROY_SESSION_V4, HGFS_REQUEST_SUPPORTED},
- {HGFS_OP_READ_FAST_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_WRITE_FAST_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_SET_WATCH_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_REMOVE_WATCH_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_NOTIFY_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_SEARCH_READ_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_OPEN_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_ENUMERATE_STREAMS_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_GETATTR_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_SETATTR_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_DELETE_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_LINKMOVE_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_FSCTL_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_ACCESS_CHECK_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_FSYNC_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_QUERY_VOLUME_INFO_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_OPLOCK_ACQUIRE_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_OPLOCK_BREAK_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_LOCK_BYTE_RANGE_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_UNLOCK_BYTE_RANGE_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_QUERY_EAS_V4, HGFS_REQUEST_NOT_SUPPORTED},
- {HGFS_OP_SET_EAS_V4, HGFS_REQUEST_NOT_SUPPORTED},
+ {HGFS_OP_OPEN, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_READ, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_WRITE, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_CLOSE, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_SEARCH_OPEN, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_SEARCH_READ, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_SEARCH_CLOSE, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_GETATTR, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_SETATTR, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_CREATE_DIR, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_DELETE_FILE, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_DELETE_DIR, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_RENAME, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_QUERY_VOLUME_INFO, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_OPEN_V2, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_GETATTR_V2, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_SETATTR_V2, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_SEARCH_READ_V2, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_CREATE_SYMLINK, HGFS_OP_CAPFLAG_POSIX_IS_SUPPORTED},
+ {HGFS_OP_SERVER_LOCK_CHANGE, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_CREATE_DIR_V2, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_DELETE_FILE_V2, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_DELETE_DIR_V2, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_RENAME_V2, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_OPEN_V3, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_READ_V3, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_WRITE_V3, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_CLOSE_V3, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_SEARCH_OPEN_V3, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_SEARCH_READ_V3, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_SEARCH_CLOSE_V3, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_GETATTR_V3, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_SETATTR_V3, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_CREATE_DIR_V3, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_DELETE_FILE_V3, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_DELETE_DIR_V3, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_RENAME_V3, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_QUERY_VOLUME_INFO_V3, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_CREATE_SYMLINK_V3, HGFS_OP_CAPFLAG_POSIX_IS_SUPPORTED},
+ {HGFS_OP_SERVER_LOCK_CHANGE_V3, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_WRITE_WIN32_STREAM_V3, HGFS_OP_CAPFLAG_WIN32_IS_SUPPORTED},
+ {HGFS_OP_CREATE_SESSION_V4, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_DESTROY_SESSION_V4, HGFS_OP_CAPFLAG_IS_SUPPORTED},
+ {HGFS_OP_READ_FAST_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_WRITE_FAST_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_SET_WATCH_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_REMOVE_WATCH_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_NOTIFY_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_SEARCH_READ_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_OPEN_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_ENUMERATE_STREAMS_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_GETATTR_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_SETATTR_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_DELETE_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_LINKMOVE_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_FSCTL_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_ACCESS_CHECK_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_FSYNC_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_QUERY_VOLUME_INFO_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_OPLOCK_ACQUIRE_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_OPLOCK_BREAK_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_LOCK_BYTE_RANGE_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_UNLOCK_BYTE_RANGE_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_QUERY_EAS_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
+ {HGFS_OP_SET_EAS_V4, HGFS_OP_CAPFLAG_NOT_SUPPORTED},
};
if (requestV4->numCapabilities) {
if (payloadSize < offsetof(HgfsRequestCreateSessionV4, capabilities) +
- requestV4->numCapabilities * sizeof(HgfsCapability)) {
+ requestV4->numCapabilities * sizeof(HgfsOpCapability)) {
LOG(4, ("%s: HGFS packet too small\n", __FUNCTION__));
return FALSE;
}
*/
void
-HgfsServerGetDefaultCapabilities(HgfsCapability *capabilities, // OUT: capabilities
- uint32 *numberOfCapabilities) // OUT: number of items
+HgfsServerGetDefaultCapabilities(HgfsOpCapability *capabilities, // OUT: capabilities
+ uint32 *numberOfCapabilities) // OUT: number of items
{
*numberOfCapabilities = ARRAYSIZE(hgfsDefaultCapabilityTable);
ASSERT(*numberOfCapabilities <= HGFS_OP_MAX);
/*********************************************************
- * Copyright (C) 1998-2016 VMware, Inc. All rights reserved.
+ * Copyright (C) 1998-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 "vmware_pack_end.h"
HgfsHeader;
+typedef uint32 HgfsOpCapFlags;
+
+/*
+ * The operation capability flags.
+ *
+ * These flags apply to all operations and occupy the least significant
+ * 16 bits of the HgfsOpCapFlags type.
+ */
+
/*
+ * HGFS_OP_CAPFLAG_NOT_SUPPORTED
* If no flags are set then the capability is not supported by the host.
*/
-#define HGFS_REQUEST_NOT_SUPPORTED 0
+#define HGFS_OP_CAPFLAG_NOT_SUPPORTED 0
+
/*
- * Flag HGFS_REQUEST_SUPPORTED is set for every requests that are supported by the host.
+ * HGFS_OP_CAPFLAG_IS_SUPPORTED
+ * Set for each request that is supported by a host or client.
+ * To be set for an Hgfs session both host and client must have the capability.
+ */
+#define HGFS_OP_CAPFLAG_IS_SUPPORTED (1 << 0)
+
+/*
+ * HGFS_OP_CAPFLAG_ASYNCHRONOUS
+ * Set for each request that can be handled asynchronously by a host or client.
+ * By default all operations are handled synchronously but if this flag is set
+ * by a client and a host then the operation can be handled in an asynchronous manner too.
+ */
+#define HGFS_OP_CAPFLAG_ASYNCHRONOUS (1 << 1)
+
+/*
+ * The operation specific capability flags.
+ *
+ * These flags apply only to the operation given by the name and occupy the
+ * most significant 16 bits of the HgfsOpCapFlags type.
*/
-#define HGFS_REQUEST_SUPPORTED (1 << 0)
/*
* Following flags define which optional parameters for file open
* requests are supported by the host.
- * HGFS_OPENV4_SUPPORTS_EA - host is capable of setting EA when creating
- * a new file.
- * HGFS_OPENV4_SUPPORTS_ACL - host is capable of setting ACLs when creating
- * a new file.
- * HGFS_OPENV4_SUPPORTS_NAMED_STREAMS - opening/enumerating named streams
- * is supported.
- * HGFS_OPENV4_SUPPORTS_SHARED_ACCESS - host supports file sharing restrictions.
- * HGFS_OPENV4_SUPPORTS_UNIX_PERMISSIONS - host stores POSIX permissions with
- * file.
- * HGFS_OPENV4_POSIX_FILE_DELETION - host supports POSIX file deletion semantics.
- */
-typedef uint32 HgfsOpenV4Capabilities;
-#define HGFS_OPENV4_SUPPORTS_EA (1 << 1)
-#define HGFS_OPENV4_SUPPORTS_ACL (1 << 2)
-#define HGFS_OPENV4_SUPPORTS_NAMED_STREAMS (1 << 3)
-#define HGFS_OPENV4_SUPPORTS_SHARED_ACCESS (1 << 4)
-#define HGFS_OPENV4_SUPPORTS_UNIX_PERMISSIONS (1 << 5)
-#define HGFS_OPENV4_POSIX_FILE_DELETION (1 << 6)
+ * HGFS_OP_CAPFLAG_OPENV4_EA - host is capable of setting EA when creating
+ * a new file.
+ * HGFS_OP_CAPFLAG_OPENV4_ACL - host is capable of setting ACLs when creating
+ * a new file.
+ * HGFS_OP_CAPFLAG_OPENV4_NAMED_STREAMS - opening/enumerating named streams
+ * is supported.
+ * HGFS_OP_CAPFLAG_OPENV4_SHARED_ACCESS - host supports file sharing restrictions.
+ * HGFS_OP_CAPFLAG_OPENV4_UNIX_PERMISSIONS - host stores POSIX permissions with
+ * file.
+ * HGFS_OP_CAPFLAG_OPENV4_POSIX_DELETION - host supports POSIX file deletion semantics.
+ */
+#define HGFS_OP_CAPFLAG_OPENV4_EA (1 << 16)
+#define HGFS_OP_CAPFLAG_OPENV4_ACL (1 << 17)
+#define HGFS_OP_CAPFLAG_OPENV4_NAMED_STREAMS (1 << 18)
+#define HGFS_OP_CAPFLAG_OPENV4_SHARED_ACCESS (1 << 19)
+#define HGFS_OP_CAPFLAG_OPENV4_UNIX_PERMISSIONS (1 << 20)
+#define HGFS_OP_CAPFLAG_OPENV4_POSIX_DELETION (1 << 21)
/*
* There is a significant difference in byte range locking semantics between Windows
* Following flags define various capabilities of byte range lock implementation on
* the host.
*
- * HGFS_BYTE_RANGE_LOCKS_SUPPORTS_64 means that server is capable of locking 64 bit
- * length ranges.
- * HGFS_BYTE_RANGE_LOCKS_SUPPORTS_32 means that server is limited to 32-bit ranges.
- * HGFS_BYTE_RANGE_LOCKS_SUPPORTS_MANDATORY means that server is capable of enforcing
- * read/write restrictions for locked ranges.
- * HGFS_BYTE_RANGE_LOCKS_SUPPORTS_ADVISORY means that server supports advisory locking;
- * locks are validated only for other bytes
- * range locking and are not enforced
- * for read/write operations.
- */
-typedef uint32 HgfsByteRangeLockingCapabilities;
-#define HGFS_BYTE_RANGE_LOCKS_SUPPORTS_64 (1 << 1)
-#define HGFS_BYTE_RANGE_LOCKS_SUPPORTS_32 (1 << 2)
-#define HGFS_BYTE_RANGE_LOCKS_SUPPORTS_MANDATORY (1 << 3)
-#define HGFS_BYTE_RANGE_LOCKS_SUPPORTS_ADVISORY (1 << 4)
+ * HGFS_OP_CAPFLAG_BYTE_RANGE_LOCKS_64 means that server is capable of locking 64 bit
+ * length ranges.
+ * HGFS_OP_CAPFLAG_BYTE_RANGE_LOCKS_32 means that server is limited to 32-bit ranges.
+ * HGFS_OP_CAPFLAG_BYTE_RANGE_LOCKS_MANDATORY means that server is capable of enforcing
+ * read/write restrictions for locked ranges.
+ * HGFS_OP_CAPFLAG_BYTE_RANGE_LOCKS_ADVISORY means that server supports advisory locking;
+ * locks are validated only for other bytes
+ * range locking and are not enforced
+ * for read/write operations.
+ */
+#define HGFS_OP_CAPFLAG_BYTE_RANGE_LOCKS_64 (1 << 16)
+#define HGFS_OP_CAPFLAG_BYTE_RANGE_LOCKS_32 (1 << 17)
+#define HGFS_OP_CAPFLAG_BYTE_RANGE_LOCKS_MANDATORY (1 << 18)
+#define HGFS_OP_CAPFLAG_BYTE_RANGE_LOCKS_ADVISORY (1 << 19)
/* HGFS_SUPPORTS_HARD_LINKS is set when the host supports hard links. */
-typedef uint32 HgfsLinkMoveCapabilities;
-#define HGFS_SUPPORTS_HARD_LINKS (1 << 1)
+#define HGFS_OP_CAPFLAG_LINKMOVE_HARD_LINKS (1 << 16)
/*
* HGFS_SET_WATCH_SUPPORTS_FINE_GRAIN_EVENTS is set when host supports
* fine grain event reporting for directory notification.
*/
-typedef uint32 HgfsSetWatchCapabilities;
-#define HGFS_SET_WATCH_SUPPORTS_FINE_GRAIN_EVENTS (1 << 1)
+#define HGFS_OP_CAPFLAG_SET_WATCH_FINE_GRAIN_EVENTS (1 << 16)
typedef
#include "vmware_pack_begin.h"
-struct HgfsCapability {
- HgfsOp op; /* Op. */
- uint32 flags; /* Flags. */
+struct HgfsOpCapability {
+ HgfsOp op; /* Op. */
+ HgfsOpCapFlags flags; /* Flags. */
}
#include "vmware_pack_end.h"
-HgfsCapability;
+HgfsOpCapability;
typedef HgfsFileName HgfsUserName;
typedef HgfsFileName HgfsGroupName;
uint32 maxPacketSize; /* Maximum packet size supported. */
HgfsSessionFlags flags; /* Session capability flags. */
uint32 reserved; /* Reserved for future use. */
- HgfsCapability capabilities[1]; /* Array of HgfsCapabilities. */
+ HgfsOpCapability capabilities[1]; /* Array of HgfsCapabilities. */
}
#include "vmware_pack_end.h"
HgfsRequestCreateSessionV4;
uint32 identityOffset; /* Offset to HgfsIdentity or 0 if no identity. */
HgfsSessionFlags flags; /* Flags. */
uint32 reserved; /* Reserved for future use. */
- HgfsCapability capabilities[1]; /* Array of HgfsCapabilities. */
+ HgfsOpCapability capabilities[1]; /* Array of HgfsCapabilities. */
}
#include "vmware_pack_end.h"
HgfsReplyCreateSessionV4;