ReactOS 0.4.16-dev-297-gc569aee
|
#include "udffs.h"
Go to the source code of this file.
Macros | |
#define | UDF_BUG_CHECK_ID UDF_FILE_DLD |
define the file specific bug-check id | |
#define | RESOURCE_EVENT_TAG 'vEeR' |
Resource event (ExclusiveWaiters) | |
#define | RESOURCE_SEMAFORE_TAG 'eSeR' |
Resource semaphore (SharedWaiters) | |
#define | RESOURCE_TABLE_TAG 'aTeR' |
Resource owner table (OwnerTable) | |
#define | DLD_MAX_REC_LEVEL 40 |
Maxmum recurse level while exploring thread-resource aquisition graf. | |
Functions | |
VOID | DLDInit (ULONG MaxThrdCount) |
Initialize deadlock detector. | |
VOID | DLDFree (VOID) |
PTHREAD_STRUCT | DLDAllocFindThread (ULONG ThreadId) |
PTHREAD_STRUCT | DLDFindThread (ULONG ThreadId) |
BOOLEAN | DLDProcessResource (PERESOURCE Resource, PTHREAD_STRUCT ThrdStruct, ULONG RecLevel) |
TRUE Indicates deadlock. | |
BOOLEAN | DLDProcessThread (PTHREAD_STRUCT ThrdOwner, PTHREAD_STRUCT ThrdStruct, PERESOURCE Resource, ULONG RecLevel) |
TRUE Indicates deadlock. | |
VOID | DLDpWaitForResource (IN PERESOURCE Resource, IN DISPATCHER_HEADER *DispatcherObject, IN PTHREAD_STRUCT ThrdStruct) |
VOID | DLDpAcquireResourceExclusiveLite (IN PERESOURCE Resource, IN ERESOURCE_THREAD Thread, IN KIRQL oldIrql, IN ULONG BugCheckId, IN ULONG Line) |
VOID | DLDAcquireExclusive (PERESOURCE Resource, ULONG BugCheckId, ULONG Line) |
POWNER_ENTRY | DLDpFindCurrentThread (IN PERESOURCE Resource, IN ERESOURCE_THREAD Thread) |
VOID | DLDAcquireShared (PERESOURCE Resource, ULONG BugCheckId, ULONG Line, BOOLEAN WaitForExclusive) |
Variables | |
ULONG | MaxThreadCount = 0 |
Maximum supported number of threads (initialized by DLDInit()) | |
PTHREAD_STRUCT | DLDThreadTable |
Waiters table. | |
LARGE_INTEGER | DLDpTimeout |
4 sec | |
ULONG | DLDpResourceTimeoutCount = 0x2 |
8 sec | |
THREAD_REC_BLOCK | DLDThreadAcquireChain [DLD_MAX_REC_LEVEL] |
#define DLD_MAX_REC_LEVEL 40 |
Maxmum recurse level while exploring thread-resource aquisition graf.
Definition at line 36 of file dldetect.cpp.
#define RESOURCE_EVENT_TAG 'vEeR' |
Resource event (ExclusiveWaiters)
Definition at line 29 of file dldetect.cpp.
#define RESOURCE_SEMAFORE_TAG 'eSeR' |
Resource semaphore (SharedWaiters)
Definition at line 31 of file dldetect.cpp.
#define RESOURCE_TABLE_TAG 'aTeR' |
Resource owner table (OwnerTable)
Definition at line 33 of file dldetect.cpp.
#define UDF_BUG_CHECK_ID UDF_FILE_DLD |
define the file specific bug-check id
Definition at line 25 of file dldetect.cpp.
VOID DLDAcquireExclusive | ( | PERESOURCE | Resource, |
ULONG | BugCheckId, | ||
ULONG | Line | ||
) |
Definition at line 313 of file dldetect.cpp.
Referenced by DLDpAcquireResourceExclusiveLite().
VOID DLDAcquireShared | ( | PERESOURCE | Resource, |
ULONG | BugCheckId, | ||
ULONG | Line, | ||
BOOLEAN | WaitForExclusive | ||
) |
Definition at line 398 of file dldetect.cpp.
PTHREAD_STRUCT DLDAllocFindThread | ( | ULONG | ThreadId | ) |
Definition at line 70 of file dldetect.cpp.
Referenced by DLDAcquireShared(), and DLDpAcquireResourceExclusiveLite().
PTHREAD_STRUCT DLDFindThread | ( | ULONG | ThreadId | ) |
Definition at line 100 of file dldetect.cpp.
Referenced by DLDProcessResource().
Initialize deadlock detector.
MaxThrdCount | Maximum supported number of threads |
Definition at line 51 of file dldetect.cpp.
Referenced by DriverEntry().
VOID DLDpAcquireResourceExclusiveLite | ( | IN PERESOURCE | Resource, |
IN ERESOURCE_THREAD | Thread, | ||
IN KIRQL | oldIrql, | ||
IN ULONG | BugCheckId, | ||
IN ULONG | Line | ||
) |
Definition at line 261 of file dldetect.cpp.
Referenced by DLDAcquireExclusive().
POWNER_ENTRY DLDpFindCurrentThread | ( | IN PERESOURCE | Resource, |
IN ERESOURCE_THREAD | Thread | ||
) |
Definition at line 345 of file dldetect.cpp.
Referenced by DLDAcquireShared().
BOOLEAN DLDProcessResource | ( | PERESOURCE | Resource, |
PTHREAD_STRUCT | ThrdStruct, | ||
ULONG | RecLevel | ||
) |
TRUE Indicates deadlock.
Definition at line 171 of file dldetect.cpp.
Referenced by DLDProcessThread(), and DLDpWaitForResource().
BOOLEAN DLDProcessThread | ( | PTHREAD_STRUCT | ThrdOwner, |
PTHREAD_STRUCT | ThrdStruct, | ||
PERESOURCE | Resource, | ||
ULONG | RecLevel | ||
) |
TRUE Indicates deadlock.
Definition at line 123 of file dldetect.cpp.
Referenced by DLDProcessResource().
VOID DLDpWaitForResource | ( | IN PERESOURCE | Resource, |
IN DISPATCHER_HEADER * | DispatcherObject, | ||
IN PTHREAD_STRUCT | ThrdStruct | ||
) |
Definition at line 225 of file dldetect.cpp.
Referenced by DLDAcquireShared(), and DLDpAcquireResourceExclusiveLite().
ULONG DLDpResourceTimeoutCount = 0x2 |
LARGE_INTEGER DLDpTimeout |
4 sec
Definition at line 44 of file dldetect.cpp.
Referenced by DLDInit(), and DLDpWaitForResource().
THREAD_REC_BLOCK DLDThreadAcquireChain[DLD_MAX_REC_LEVEL] |
Definition at line 48 of file dldetect.cpp.
Referenced by DLDProcessThread().
PTHREAD_STRUCT DLDThreadTable |
Waiters table.
Definition at line 42 of file dldetect.cpp.
Referenced by DLDAllocFindThread(), DLDFindThread(), DLDFree(), and DLDInit().
ULONG MaxThreadCount = 0 |
Maximum supported number of threads (initialized by DLDInit())
Definition at line 39 of file dldetect.cpp.
Referenced by DLDAllocFindThread(), DLDFindThread(), and DLDInit().