mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.6 KiB
87 lines
2.6 KiB
/*++
|
|
|
|
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_
|