aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--winsup/w32api/ChangeLog26
-rw-r--r--winsup/w32api/include/ddk/winddk.h58
-rw-r--r--winsup/w32api/include/ddk/winnt4.h21
-rw-r--r--winsup/w32api/lib/ddk/ntoskrnl.def37
4 files changed, 117 insertions, 25 deletions
diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog
index 0789e02..7813a27 100644
--- a/winsup/w32api/ChangeLog
+++ b/winsup/w32api/ChangeLog
@@ -1,3 +1,29 @@
+2004-10-10 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/ddk/winnt4.h (Exi386InterlockedDecrementLong,
+ Exi386InterlockedExchangeUlong, Exi386InterlockedIncrementLong);
+ Add prototypes.
+ * include/winddk.h (ExInterlockedAddUlong,
+ ExInterlockedInsertHeadList, ExInterlockedInsertTailList,
+ ExInterlockedRemoveHeadList, ExInterlockedPopEntryList,
+ ExInterlockedPushEntryList): Change calling convention to
+ DDKAPI.
+ (ExfInterlockedAddUlong,ExInterlockedInsertHeadList,
+ ExInterlockedInsertTailList, ExInterlockedRemoveHeadList,
+ ExInterlockedPopEntryList, ExInterlockedPushEntryList):
+ Add prototypes for DDKFASTAPI versions.
+ Thanks to Vadim Yegor0v <zg at bmg dot lv> for report.
+ * lib/ntoskrnl.def (ExInterlockedAddUlong,
+ ExInterlockedInsertHeadList, ExInterlockedInsertTailList,
+ ExInterlockedRemoveHeadList, ExInterlockedPopEntryList,
+ ExInterlockedPushEntryList): Remove lead '@' from stubs.
+ (ExfInterlockedAddUlong,ExfInterlockedInsertHeadList,
+ ExfInterlockedInsertTailList, ExfInterlockedRemoveHeadList,
+ ExfInterlockedPopEntryList, ExfInterlockedPushEntryList):
+ Add fastcall stubs.
+ (Exi386InterlockedDecrementLong, Exi386InterlockedExchangeUlong,
+ Exi386InterlockedIncrementLong); Add stdcall stubs.
+
2004-09-30 Danny Smith <dannysmith@users.sourceforge.net>
* include/winbase.h (WINBASEAPI): Define as DECLSPEC_IMPORT only
diff --git a/winsup/w32api/include/ddk/winddk.h b/winsup/w32api/include/ddk/winddk.h
index 3af7b61..d312b47 100644
--- a/winsup/w32api/include/ddk/winddk.h
+++ b/winsup/w32api/include/ddk/winddk.h
@@ -5328,13 +5328,22 @@ ExInterlockedAddLargeStatistic(
NTOSAPI
ULONG
-DDKFASTAPI
+DDKAPI
ExInterlockedAddUlong(
IN PULONG Addend,
IN ULONG Increment,
PKSPIN_LOCK Lock);
NTOSAPI
+ULONG
+DDKFASTAPI
+ExfInterlockedAddUlong(
+ IN PULONG Addend,
+ IN ULONG Increment,
+ PKSPIN_LOCK Lock);
+
+
+NTOSAPI
LONGLONG
DDKFASTAPI
ExInterlockedCompareExchange64(
@@ -5351,7 +5360,7 @@ ExInterlockedFlushSList(
NTOSAPI
PLIST_ENTRY
-DDKFASTAPI
+DDKAPI
ExInterlockedInsertHeadList(
IN PLIST_ENTRY ListHead,
IN PLIST_ENTRY ListEntry,
@@ -5360,18 +5369,41 @@ ExInterlockedInsertHeadList(
NTOSAPI
PLIST_ENTRY
DDKFASTAPI
+ExfInterlockedInsertHeadList(
+ IN PLIST_ENTRY ListHead,
+ IN PLIST_ENTRY ListEntry,
+ IN PKSPIN_LOCK Lock);
+
+NTOSAPI
+PLIST_ENTRY
+DDKAPI
ExInterlockedInsertTailList(
IN PLIST_ENTRY ListHead,
IN PLIST_ENTRY ListEntry,
IN PKSPIN_LOCK Lock);
NTOSAPI
-PSINGLE_LIST_ENTRY
+PLIST_ENTRY
DDKFASTAPI
+ExfInterlockedInsertTailList(
+ IN PLIST_ENTRY ListHead,
+ IN PLIST_ENTRY ListEntry,
+ IN PKSPIN_LOCK Lock);
+
+NTOSAPI
+PSINGLE_LIST_ENTRY
+DDKAPI
ExInterlockedPopEntryList(
IN PSINGLE_LIST_ENTRY ListHead,
IN PKSPIN_LOCK Lock);
+NTOSAPI
+PSINGLE_LIST_ENTRY
+DDKFASTAPI
+ExfInterlockedPopEntryList(
+ IN PSINGLE_LIST_ENTRY ListHead,
+ IN PKSPIN_LOCK Lock);
+
/*
* PSINGLE_LIST_ENTRY
* ExInterlockedPopEntrySList(
@@ -5384,12 +5416,20 @@ ExInterlockedPopEntryList(
NTOSAPI
PSINGLE_LIST_ENTRY
-DDKFASTAPI
+DDKAPI
ExInterlockedPushEntryList(
IN PSINGLE_LIST_ENTRY ListHead,
IN PSINGLE_LIST_ENTRY ListEntry,
IN PKSPIN_LOCK Lock);
+NTOSAPI
+PSINGLE_LIST_ENTRY
+DDKFASTAPI
+ExfInterlockedPushEntryList(
+ IN PSINGLE_LIST_ENTRY ListHead,
+ IN PSINGLE_LIST_ENTRY ListEntry,
+ IN PKSPIN_LOCK Lock);
+
/*
* PSINGLE_LIST_ENTRY FASTCALL
* ExInterlockedPushEntrySList(
@@ -5404,12 +5444,20 @@ ExInterlockedPushEntryList(
NTOSAPI
PLIST_ENTRY
-DDKFASTAPI
+DDKAPI
ExInterlockedRemoveHeadList(
IN PLIST_ENTRY ListHead,
IN PKSPIN_LOCK Lock);
NTOSAPI
+PLIST_ENTRY
+DDKFASTAPI
+ExfInterlockedRemoveHeadList(
+ IN PLIST_ENTRY ListHead,
+ IN PKSPIN_LOCK Lock);
+
+
+NTOSAPI
BOOLEAN
DDKAPI
ExIsProcessorFeaturePresent(
diff --git a/winsup/w32api/include/ddk/winnt4.h b/winsup/w32api/include/ddk/winnt4.h
index 3f84243..503d44c 100644
--- a/winsup/w32api/include/ddk/winnt4.h
+++ b/winsup/w32api/include/ddk/winnt4.h
@@ -567,25 +567,44 @@ RtlLargeIntegerSubtract(
/*
-** Architecture specific structures
+** Architecture specific functions
*/
#ifdef _X86_
NTOSAPI
INTERLOCKED_RESULT
+DDKAPI
+Exi386InterlockedIncrementLong(
+ IN PLONG Addend);
+
+NTOSAPI
+INTERLOCKED_RESULT
DDKFASTAPI
Exfi386InterlockedIncrementLong(
IN PLONG Addend);
NTOSAPI
INTERLOCKED_RESULT
+DDKAPI
+Exi386InterlockedDecrementLong(
+ IN PLONG Addend);
+
+NTOSAPI
+INTERLOCKED_RESULT
DDKFASTAPI
Exfi386InterlockedDecrementLong(
IN PLONG Addend);
NTOSAPI
ULONG
+DDKAPI
+Exi386InterlockedExchangeUlong(
+ IN PULONG Target,
+ IN ULONG Value);
+
+NTOSAPI
+ULONG
DDKFASTAPI
Exfi386InterlockedExchangeUlong(
IN PULONG Target,
diff --git a/winsup/w32api/lib/ddk/ntoskrnl.def b/winsup/w32api/lib/ddk/ntoskrnl.def
index aeea698..467f494 100644
--- a/winsup/w32api/lib/ddk/ntoskrnl.def
+++ b/winsup/w32api/lib/ddk/ntoskrnl.def
@@ -76,6 +76,15 @@ ExDeleteResourceLite@4
;ExEnumHandleTable
;ExEventObjectType DATA
ExExtendZone@12
+@Exfi386InterlockedDecrementLong@4
+@Exfi386InterlockedExchangeUlong@8
+@Exfi386InterlockedIncrementLong@4
+@ExfInterlockedAddUlong@12
+@ExfInterlockedInsertHeadList@12
+@ExfInterlockedInsertTailList@12
+@ExfInterlockedPopEntryList@8
+@ExfInterlockedPushEntryList@12
+@ExfInterlockedRemoveHeadList@8
ExFreePool@4
ExFreePoolWithTag@8
ExFreeToPagedLookasideList@8
@@ -84,6 +93,9 @@ ExFreeToPagedLookasideList@8
ExGetExclusiveWaiterCount@4
ExGetPreviousMode@0
ExGetSharedWaiterCount@4
+Exi386InterlockedDecrementLong@4
+Exi386InterlockedExchangeUlong@8
+Exi386InterlockedIncrementLong@4
ExInitializeNPagedLookasideList@28
ExInitializePagedLookasideList@28
ExInitializeResourceLite@4
@@ -91,20 +103,20 @@ ExInitializeResourceLite@4
ExInitializeZone@16
ExInterlockedAddLargeInteger@12
@ExInterlockedAddLargeStatistic@8
-@ExInterlockedAddUlong@12
+ExInterlockedAddUlong@12
@ExInterlockedCompareExchange64@16
ExInterlockedDecrementLong@8
ExInterlockedExchangeUlong@12
ExInterlockedExtendZone@16
@ExInterlockedFlushSList@4
@ExInterlockedIncrementLong@8
-@ExInterlockedInsertHeadList@12
-@ExInterlockedInsertTailList@12
-@ExInterlockedPopEntryList@8
+ExInterlockedInsertHeadList@12
+ExInterlockedInsertTailList@12
+ExInterlockedPopEntryList@8
;ExInterlockedPopEntrySList
-@ExInterlockedPushEntryList@12
+ExInterlockedPushEntryList@12
;ExInterlockedPushEntrySList
-@ExInterlockedRemoveHeadList@8
+ExInterlockedRemoveHeadList@8
ExIsProcessorFeaturePresent@4
ExIsResourceAcquiredExclusiveLite@4
ExIsResourceAcquiredSharedLite@4
@@ -135,19 +147,6 @@ ExUuidCreate@4
ExVerifySuite@4
;ExWaitForRundownProtectionRelease
;ExWindowStationObjectType DATA
-;ExfInterlockedAddUlong
-;ExfInterlockedCompareExchange64
-;ExfInterlockedInsertHeadList
-;ExfInterlockedInsertTailList
-;ExfInterlockedPopEntryList
-;ExfInterlockedPushEntryList
-;ExfInterlockedRemoveHeadList
-@Exfi386InterlockedDecrementLong@4
-@Exfi386InterlockedExchangeUlong@8
-@Exfi386InterlockedIncrementLong@4
-;Exi386InterlockedDecrementLong
-;Exi386InterlockedExchangeUlong
-;Exi386InterlockedIncrementLong
;FsRtlAcquireFileExclusive
;FsRtlAddLargeMcbEntry
;FsRtlAddMcbEntry