- Implemented InterlockedBitTestAndReset, InterlockedBitTestAndSet, InterlockedExchan...
authorAlex Ionescu <aionescu@gmail.com>
Thu, 29 Dec 2005 19:12:09 +0000 (19:12 +0000)
committerAlex Ionescu <aionescu@gmail.com>
Thu, 29 Dec 2005 19:12:09 +0000 (19:12 +0000)
commitea4fcb61887beb055cd30d6c7e8561ad960f73d3
tree5d40a5d1af46d378dbe1610be4d562da7a80a5ec
parent8b5a187ddc75152562ce891b5c32e39568ac61e9
- Implemented InterlockedBitTestAndReset, InterlockedBitTestAndSet, InterlockedExchangeAddSizeT.
- Rundown re-implementation:

* Added inlined functions for internal system use for quickest path.
* Correctly named all functions Exf instead of Ex.
* Removed PAGED_CODE(); macro where it shouldn't be used.
* Addded multiple ASSERTS for sanity checks.
* Used macros for win64/32 portability.
* Fixed the following bugs/features:
    * ExfAcquireRundownProtection:
        ** Added specific code instead of calling the generic function. Rundown locks are
           performance critical and a dedicated path is prefered.
    * ExfAcquireRundownProtectionEx:
        ** Added a quick immediate check to see if the rundown is active.
    * ExfReleaseRundownProtection:
        ** Added specific code instead of calling the generic function. Rundown locks are
           performance critical and a dedicated path is prefered.
    * ExfReleaseRundownProtectionEx:
        ** Simplified the loop code.
        ** Fixed a bug in signaling of the event during waitblock count removal
    * ExfWaitForRundownProtectionRelease:
        ** Add quick case when we don't actually need a full wait.
        ** Simplified loop code.
* Added stubs for cache-aware implementation.
* Documented the functions.

svn path=/trunk/; revision=20435
reactos/include/ndk/exfuncs.h
reactos/ntoskrnl/cm/ntfunc.c
reactos/ntoskrnl/ex/rundown.c
reactos/ntoskrnl/include/internal/ex.h
reactos/ntoskrnl/ntoskrnl.def
reactos/ntoskrnl/ntoskrnl.xml
reactos/w32api/include/winnt.h