ExInitializeWorkItem: synch with Windows (only NULL the Flink)
[reactos.git] / reactos / include / ddk / exfuncs.h
index 0cf9459..3557b5d 100644 (file)
@@ -254,15 +254,15 @@ ExfInterlockedCompareExchange64(
 VOID
 STDCALL
 ExGetCurrentProcessorCounts (
-       PVOID   IdleThreadTime,
-       PVOID   SystemTime,
-       PVOID   Number
-       );
+       PULONG  ThreadKernelTime,
+       PULONG  TotalCpuTime,
+       PULONG  ProcessorNumber
+);
 
 VOID
 STDCALL
 ExGetCurrentProcessorCpuUsage (
-       PVOID   RetVal
+       PULONG  CpuUsage
        );
 
 ULONG
@@ -344,8 +344,7 @@ ExInitializeRundownProtection (
        ASSERT_IRQL(DISPATCH_LEVEL); \
        (Item)->WorkerRoutine = (Routine); \
        (Item)->Parameter = (RoutineContext); \
-       (Item)->List.Flink = NULL; \
-       (Item)->List.Blink = NULL;
+       (Item)->List.Flink = NULL;
 
 NTSTATUS
 STDCALL
@@ -372,7 +371,7 @@ ExInterlockedAddLargeStatistic (
        );
 
 ULONG
-FASTCALL
+STDCALL
 ExInterlockedAddUlong (
        PULONG          Addend,
        ULONG           Increment,
@@ -447,21 +446,21 @@ ExInterlockedIncrementLong (
        PKSPIN_LOCK     Lock
        );
 PLIST_ENTRY
-FASTCALL
+STDCALL
 ExInterlockedInsertHeadList (
        PLIST_ENTRY     ListHead,
        PLIST_ENTRY     ListEntry,
        PKSPIN_LOCK     Lock
        );
 PLIST_ENTRY
-FASTCALL
+STDCALL
 ExInterlockedInsertTailList (
        PLIST_ENTRY     ListHead,
        PLIST_ENTRY     ListEntry,
        PKSPIN_LOCK     Lock
        );
 PSINGLE_LIST_ENTRY
-FASTCALL
+STDCALL
 ExInterlockedPopEntryList (
        PSINGLE_LIST_ENTRY      ListHead,
        PKSPIN_LOCK             Lock
@@ -473,7 +472,7 @@ ExInterlockedPopEntrySList (
        PKSPIN_LOCK     Lock
        );
 PSINGLE_LIST_ENTRY
-FASTCALL
+STDCALL
 ExInterlockedPushEntryList (
        PSINGLE_LIST_ENTRY      ListHead,
        PSINGLE_LIST_ENTRY      ListEntry,
@@ -486,16 +485,8 @@ ExInterlockedPushEntrySList (
        PSINGLE_LIST_ENTRY      ListEntry,
        PKSPIN_LOCK             Lock
        );
-
-VOID
-ExInterlockedRemoveEntryList (
-       PLIST_ENTRY     ListHead,
-       PLIST_ENTRY     Entry,
-       PKSPIN_LOCK     Lock
-       );
-
 PLIST_ENTRY
-FASTCALL
+STDCALL
 ExInterlockedRemoveHeadList (
        PLIST_ENTRY     Head,
        PKSPIN_LOCK     Lock
@@ -686,6 +677,16 @@ ExReleaseRundownProtectionEx (
     IN PEX_RUNDOWN_REF RunRef,
     IN ULONG Count
     );
+/* ReactOS Specific: begin */
+VOID STDCALL
+ExRosDumpPagedPoolByTag (
+    IN ULONG Tag
+    );
+ULONG STDCALL
+ExRosQueryPoolTag (
+    IN PVOID Block
+    );
+/* ReactOS Specific: end */
 VOID
 FASTCALL
 ExRundownCompleted (
@@ -705,8 +706,8 @@ ExSetTimerResolution (
     IN BOOLEAN SetResolution
     );
 
-STDCALL
 BOOLEAN
+STDCALL
 ExVerifySuite(
     SUITE_TYPE SuiteType
     );
@@ -742,8 +743,8 @@ ExUnregisterCallback (
 
 typedef GUID UUID;
 
-STDCALL
 NTSTATUS
+STDCALL
 ExUuidCreate(
     OUT UUID *Uuid
     );
@@ -999,8 +1000,23 @@ InterlockedIncrement (
        );
 
 #ifndef InterlockedExchangePointer
-#define InterlockedExchangePointer(__T__, __V__) \
- (PVOID)InterlockedExchange((PLONG)(__T__), (LONG)(__V__))
+# ifdef _WIN64
+#  define InterlockedExchangePointer(__T__, __V__) \
+             (PVOID)InterlockedExchange64((PLONGLONG)(__T__), (LONGLONG)(__V__))
+# else
+#  define InterlockedExchangePointer(__T__, __V__) \
+             (PVOID)InterlockedExchange((PLONG)(__T__), (LONG)(__V__))
+# endif
+#endif
+
+#ifndef InterlockedCompareExchangePointer
+# ifdef _WIN64
+#  define InterlockedCompareExchangePointer(__T__, __V__, __C__) \
+             (PVOID)InterlockedCompareExchange64((PLONGLONG)(__T__), (LONGLONG)(__V__), (LONGLONG)(__C__))
+# else
+#  define InterlockedCompareExchangePointer(__T__, __V__, __C__) \
+             (PVOID)InterlockedCompareExchange((PLONG)(__T__), (LONG)(__V__), (LONG)(__C__))
+# endif
 #endif
 
 /*---*/