summaryrefslogtreecommitdiffstats
path: root/private/net/svcdlls/repl/server/repllock.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/net/svcdlls/repl/server/repllock.h')
-rw-r--r--private/net/svcdlls/repl/server/repllock.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/private/net/svcdlls/repl/server/repllock.h b/private/net/svcdlls/repl/server/repllock.h
new file mode 100644
index 000000000..a1ab1c303
--- /dev/null
+++ b/private/net/svcdlls/repl/server/repllock.h
@@ -0,0 +1,87 @@
+/*++
+
+Copyright (c) 1991-1993 Microsoft Corporation
+
+Module Name:
+
+ ReplLock.h
+
+Abstract:
+
+ This module defines lock equates for use with net/inc/netlock.h.
+
+ For more information, see the comments in that file.
+ See also public/spec/network/repllock.txt.
+
+Author:
+
+ John Rogers (JohnRo) 30-Dec-1991
+
+Environment:
+
+ Portable to any flat, 32-bit environment. (Uses Win32 typedefs.)
+ Requires ANSI C extensions: slash-slash comments, long external names.
+
+Revision History:
+
+ 30-Dec-1991 JohnRo
+ Created.
+ 02-Jan-1992 JohnRo
+ Added support for FAKE_PER_PROCESS_RW_CONFIG handling.
+ 09-Jan-1992 JohnRo
+ Client list lock and pool lock can be held at same time.
+ 15-Jan-1992 JohnRo
+ Added config list lock level.
+ 10-Feb-1992 JohnRo
+ Added lock for master's client list (RMGlobalClientList).
+ 25-Mar-1992 JohnRo
+ Revised/corrected lock level numbers.
+ 09-Nov-1992 JohnRo
+ RAID 7962: Repl APIs in wrong role kill svc.
+ 25-Mar-1993 JohnRo
+ RAID 4267: Replicator has problems when work queue gets large.
+
+--*/
+
+#ifndef _REPLLOCK_
+#define _REPLLOCK_
+
+
+//
+// Define levels for locks used by the replicator service. These levels
+// are checked during debugging. Locks which shouldn't be held at the same
+// time can have the same level. Make sure there are no conflicts with the
+// reserved lock level(s) in netlock.h.
+//
+// Config data lock can be held while getting client list lock.
+// For instance, this happens in NetrImportDirAdd.
+//
+// Config data lock is held while getting a master list lock in
+// NetrReplImportDirAdd, GuardUpdate, etc.
+//
+// Client list lock can be held while getting lock on delay list.
+// This happens when ReplDoUpdate calls ReplScanQueuesForMoreRecentMsg.
+//
+// The client list lock can be held while getting a pool lock. This
+// happens when ReplRemoveClientRecForDirName calls ReplClientFreePoolEntry.
+// Also ReplCheckTimeList calls ReplQuePut, which calls ReplClientGetPoolEntry.
+//
+// Client list lock can be held while getting lock on work queue.
+//
+// Client list lock can be held while getting lock on duplicate list.
+//
+// The delay list lock can be held while getting a lock
+// for the work queue.
+//
+
+
+#define CONFIG_DATA_LOCK_LEVEL ((DWORD) 0x00000100)
+#define CLIENT_LIST_LOCK_LEVEL ((DWORD) 0x00000200)
+#define DELAY_LIST_LOCK_LEVEL ((DWORD) 0x00000300)
+#define POOL_LOCK_LEVEL ((DWORD) 0x00000400)
+#define WORK_QUEUE_LOCK_LEVEL ((DWORD) 0x00000500)
+#define MASTER_LIST_LOCK_LEVEL ((DWORD) 0x00000600)
+#define DUPL_LIST_LOCK_LEVEL ((DWORD) 0x00000700)
+
+
+#endif // ndef _REPLLOCK_