1 ////////////////////////////////////////////////////////////////////
2 // Copyright (C) Alexander Telyatnikov, Ivan Keliukh, Yegor Anchishkin, SKIF Software, 1999-2013. Kiev, Ukraine
4 // This file was released under the GPLv2 on June 2015.
5 ////////////////////////////////////////////////////////////////////
14 This file contains all defines and protos related to DeadLock Detector.
25 #define DLDAllocatePool(size) MyAllocatePool__(NonPagedPool,size)
26 #define DLDFreePool(addr) MyFreePool__((addr))
28 #define DLDGetCurrentResourceThread() \
29 ((ERESOURCE_THREAD)PsGetCurrentThread())
31 #ifndef ResourceOwnedExclusive
32 #define ResourceOwnedExclusive 0x80
34 #define ResourceDisableBoost 0x08
37 VOID
DLDInit(ULONG MaxThrdCount
);
40 VOID
DLDAcquireExclusive(PERESOURCE Resource
,
44 VOID
DLDAcquireShared(PERESOURCE Resource
,
47 BOOLEAN WaitForExclusive
);
49 VOID
DLDAcquireSharedStarveExclusive(PERESOURCE Resource
,
53 VOID
DLDUnblock(PERESOURCE Resource
);
58 typedef struct _THREAD_STRUCT
{
59 ERESOURCE_THREAD ThreadId
;
60 PERESOURCE WaitingResource
;
63 } THREAD_STRUCT
, *PTHREAD_STRUCT
;
66 typedef struct _THREAD_REC_BLOCK
{
67 PTHREAD_STRUCT Thread
;
68 PERESOURCE HoldingResource
;
69 } THREAD_REC_BLOCK
, *PTHREAD_REC_BLOCK
;
71 #endif // _DL_DETECT_H_