From 7d032a010a4ba423d76fe5d0ff208125d903b400 Mon Sep 17 00:00:00 2001 From: Danny Smith Date: Sun, 10 Oct 2004 07:14:04 +0000 Subject: * 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 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. --- winsup/w32api/ChangeLog | 26 +++++++++++++++++ winsup/w32api/include/ddk/winddk.h | 58 ++++++++++++++++++++++++++++++++++---- winsup/w32api/include/ddk/winnt4.h | 21 +++++++++++++- winsup/w32api/lib/ddk/ntoskrnl.def | 37 ++++++++++++------------ 4 files changed, 117 insertions(+), 25 deletions(-) diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog index 0789e023f..7813a274d 100644 --- a/winsup/w32api/ChangeLog +++ b/winsup/w32api/ChangeLog @@ -1,3 +1,29 @@ +2004-10-10 Danny Smith + + * 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 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 * 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 3af7b61ca..d312b4722 100644 --- a/winsup/w32api/include/ddk/winddk.h +++ b/winsup/w32api/include/ddk/winddk.h @@ -5328,12 +5328,21 @@ 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 @@ -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,11 +5444,19 @@ 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 diff --git a/winsup/w32api/include/ddk/winnt4.h b/winsup/w32api/include/ddk/winnt4.h index 3f8424381..503d44ca7 100644 --- a/winsup/w32api/include/ddk/winnt4.h +++ b/winsup/w32api/include/ddk/winnt4.h @@ -567,23 +567,42 @@ 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 diff --git a/winsup/w32api/lib/ddk/ntoskrnl.def b/winsup/w32api/lib/ddk/ntoskrnl.def index aeea6984e..467f49413 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 -- cgit v1.2.3