Windows: add AFS_OBJECT_REFERENCE_FS_REQ
[openafs.git] / src / WINNT / afsrdr / kernel / lib / Include / AFSDefines.h
index cc93a44..566c41c 100644 (file)
@@ -96,8 +96,8 @@ NTSTATUS
 // Worker thread count
 //
 
-#define AFS_WORKER_COUNT        5
-#define AFS_IO_WORKER_COUNT     5
+#define AFS_WORKER_COUNT        16
+#define AFS_IO_WORKER_COUNT     8
 
 //
 // Worker thread states
@@ -112,12 +112,13 @@ NTSTATUS
 
 #define AFS_WORK_UNUSED_1                       0x0001
 #define AFS_WORK_FLUSH_FCB                      0x0002
-#define AFS_WORK_ASYNCH_READ                    0x0003
-#define AFS_WORK_ASYNCH_WRITE                   0x0004
+#define AFS_WORK_UNUSED_3                       0x0003
+#define AFS_WORK_UNUSED_4                       0x0004
 #define AFS_WORK_UNUSED_5                       0x0005
 #define AFS_WORK_ENUMERATE_GLOBAL_ROOT          0x0006
-#define AFS_WORK_UNUSED_7                       0x0007
+#define AFS_WORK_INVALIDATE_OBJECT              0x0007
 #define AFS_WORK_START_IOS                      0x0008
+#define AFS_WORK_DEFERRED_WRITE                 0x0009
 
 //
 // Worker request flags
@@ -136,6 +137,7 @@ NTSTATUS
 #define AFS_FCB_FLAG_UPDATE_ACCESS_TIME                      0x00000010
 #define AFS_FCB_FLAG_UPDATE_CREATE_TIME                      0x00000020
 #define AFS_FCB_FLAG_UPDATE_LAST_WRITE_TIME                  0x00000040
+#define AFS_FCB_FLAG_PURGE_ON_CLOSE                          0x00000080
 
 //
 // Object information flags
@@ -151,6 +153,39 @@ NTSTATUS
 #define AFS_OBJECT_HELD_IN_SERVICE                      0x00000080
 #define AFS_OBJECT_ROOT_VOLUME                          0x00000100
 #define AFS_OBJECT_FLAGS_VERIFY_DATA                    0x00000200
+#define AFS_OBJECT_FLAGS_PARENT_FID                     0x00000400
+
+//
+// Object information reference count reasons
+//
+
+#define AFS_OBJECT_REFERENCE_DIRENTRY                   0
+#define AFS_OBJECT_REFERENCE_CHILD                      1
+#define AFS_OBJECT_REFERENCE_INVALIDATION               2
+#define AFS_OBJECT_REFERENCE_GLOBAL                     3
+#define AFS_OBJECT_REFERENCE_EXTENTS                    4
+#define AFS_OBJECT_REFERENCE_WORKER                     5
+#define AFS_OBJECT_REFERENCE_STATUS                     6
+#define AFS_OBJECT_REFERENCE_FIND                       7
+#define AFS_OBJECT_REFERENCE_FS_REQ                     8
+#define AFS_OBJECT_REFERENCE_MAX                        9
+
+//
+// Volume reference count reasons
+//
+
+#define AFS_VOLUME_REFERENCE_INVALID                    0
+#define AFS_VOLUME_REFERENCE_EXTENTS                    1
+#define AFS_VOLUME_REFERENCE_GLOBAL_ROOT                2
+#define AFS_VOLUME_REFERENCE_INVALIDATE                 3
+#define AFS_VOLUME_REFERENCE_FILE_ATTRS                 4
+#define AFS_VOLUME_REFERENCE_EVAL_ROOT                  5
+#define AFS_VOLUME_REFERENCE_GET_OBJECT                 6
+#define AFS_VOLUME_REFERENCE_MOUNTPT                    7
+#define AFS_VOLUME_REFERENCE_BUILD_ROOT                 8
+#define AFS_VOLUME_REFERENCE_LOCATE_NAME                9
+#define AFS_VOLUME_REFERENCE_PARSE_NAME                10
+#define AFS_VOLUME_REFERENCE_MAX                       12
 
 //
 // Define one second in terms of 100 nS units
@@ -164,7 +199,7 @@ NTSTATUS
 // Fcb lifetime in seconds
 //
 
-#define AFS_OBJECT_LIFETIME             30 * AFS_ONE_SECOND
+#define AFS_OBJECT_LIFETIME             20 * AFS_ONE_SECOND
 
 #define AFS_EXTENT_REQUEST_TIME         10 * AFS_ONE_SECOND
 
@@ -193,10 +228,10 @@ NTSTATUS
     ((((ULONG)(Ptr)) + 7) & 0xfffffff8) \
     )
 
-#define CRC32_POLYNOMIAL     0xEDB88320L;
+#define CRC32_POLYNOMIAL     0xEDB88320L
 
-#define AFS_SERVER_FLUSH_DELAY  30
-#define AFS_SERVER_PURGE_DELAY  60
+#define AFS_SERVER_FLUSH_DELAY  (5LL * AFS_ONE_SECOND)
+#define AFS_SERVER_PURGE_DELAY  (300LL * AFS_ONE_SECOND)
 //
 // PURGE_SLEEP is the number of PURGE_DELAYS we wait before we will unilaterally
 // give back extents.
@@ -205,12 +240,6 @@ NTSTATUS
 //
 #define AFS_SERVER_PURGE_SLEEP  6
 
-//
-// Read ahead granularity
-//
-
-#define READ_AHEAD_GRANULARITY      0x10000     // 64KB
-
 #define AFS_DIR_ENUM_BUFFER_LEN   (16 * 1024)
 
 //
@@ -232,10 +261,11 @@ NTSTATUS
 #define CCB_FLAG_MASK_CONTAINS_WILD_CARDS   0x00000004
 #define CCB_FLAG_FREE_FULL_PATHNAME         0x00000008
 #define CCB_FLAG_RETURN_RELATIVE_ENTRIES    0x00000010
-#define CCB_FLAGS_DIRECTORY_QUERY_MAPPED    0x00000020
+#define CCB_FLAG_DIRECTORY_QUERY_MAPPED     0x00000020
 #define CCB_FLAG_MASK_PIOCTL_QUERY          0x00000040
 #define CCB_FLAG_MASK_OPENED_REPARSE_POINT  0x00000080
 #define CCB_FLAG_INSERTED_CCB_LIST          0x00000100
+#define CCB_FLAG_DIRECTORY_QUERY_DIRECT_QUERY 0x00000200
 
 //
 // DirEntry flags
@@ -251,10 +281,9 @@ NTSTATUS
 #define AFS_DIR_ENTRY_VALID                     0x00000080
 #define AFS_DIR_ENTRY_PENDING_DELETE            0x00000100
 #define AFS_DIR_ENTRY_DELETED                   0x00000200
-#define AFS_DIR_ENTRY_SERVER_SERVICE            0x00000400
-#define AFS_DIR_ENTRY_WORKSTATION_SERVICE       0x00000800
-#define AFS_DIR_ENTRY_IPC                       0x00001000
-#define AFS_DIR_ENTRY_INSERTED_SHORT_NAME       0x00002000
+#define AFS_DIR_ENTRY_PIPE_SERVICE              0x00000400
+#define AFS_DIR_ENTRY_IPC                       0x00000800
+#define AFS_DIR_ENTRY_INSERTED_SHORT_NAME       0x00001000
 
 //
 // Network provider errors
@@ -350,6 +379,8 @@ NTSTATUS
 
 #define AFS_MAXIMUM_EXTENT_RELEASE_COUNT        100
 
+#define AFS_DIRTY_CHUNK_THRESHOLD               64
+
 // {41966169-3FD7-4392-AFE4-E6A9D0A92C72}  - generated using guidgen.exe
 DEFINE_GUID (GUID_SD_AFS_REDIRECTOR_CONTROL_OBJECT,
         0x41966169, 0x3fd7, 0x4392, 0xaf, 0xe4, 0xe6, 0xa9, 0xd0, 0xa9, 0x2c, 0x72);
@@ -385,13 +416,6 @@ DEFINE_GUID (GUID_SD_AFS_REDIRECTOR_CONTROL_OBJECT,
 #define AFS_SPECIAL_SHARE_NAME_COUNT_MAX    10
 
 //
-// Device flags
-//
-
-#define AFS_DEVICE_FLAG_HIDE_DOT_NAMES          0x00000001
-#define AFS_DEVICE_FLAG_REDIRECTOR_SHUTDOWN     0x00000002
-
-//
 // Name Array flags
 //
 
@@ -433,6 +457,10 @@ DEFINE_GUID (GUID_SD_AFS_REDIRECTOR_CONTROL_OBJECT,
 #define IO_REPARSE_TAG_OPENAFS_DFS              0x00000037L
 #endif
 
+#ifndef IO_REPARSE_TAG_SURROGATE
+#define IO_REPARSE_TAG_SURROGATE                0x20000000L
+#endif
+
 //  {EF21A155-5C92-4470-AB3B-370403D96369}
 DEFINE_GUID (GUID_AFS_REPARSE_GUID,
         0xEF21A155, 0x5C92, 0x4470, 0xAB, 0x3B, 0x37, 0x04, 0x03, 0xD9, 0x63, 0x69);