diff options
-rw-r--r-- | winsup/w32api/ChangeLog | 26 | ||||
-rw-r--r-- | winsup/w32api/include/ddk/winddk.h | 58 | ||||
-rw-r--r-- | winsup/w32api/include/ddk/winnt4.h | 21 | ||||
-rw-r--r-- | 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 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 |