None. I can create one though. It's part of the psapi winetests fix for working set querying.
On 11/06/2013 09:05 AM, Alex Ionescu wrote: > What JIRA task is this associated with? > > -----Original Message----- > From: ros-diffs-boun...@reactos.org [mailto:ros-diffs-boun...@reactos.org] On > Behalf Of pschweit...@svn.reactos.org > Sent: Tuesday, November 5, 2013 2:04 PM > To: ros-di...@reactos.org > Subject: [ros-diffs] [pschweitzer] 60871: [NTOSKRNL] - Implement > MiUnlockProcessWorkingSetShared() and make use of it in > MiUnlockProcessWorkingSetForFault(). - Complete implementation of > MiLockProcessWorkingSetForFault() > > Author: pschweitzer > Date: Tue Nov 5 22:03:42 2013 > New Revision: 60871 > > URL: http://svn.reactos.org/svn/reactos?rev=60871&view=rev > Log: > [NTOSKRNL] > - Implement MiUnlockProcessWorkingSetShared() and make use of it in > MiUnlockProcessWorkingSetForFault(). > - Complete implementation of MiLockProcessWorkingSetForFault() > > Modified: > trunk/reactos/ntoskrnl/mm/ARM3/miarm.h > > Modified: trunk/reactos/ntoskrnl/mm/ARM3/miarm.h > URL: > http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/ARM3/miarm.h?rev=60871&r1=60870&r2=60871&view=diff > ============================================================================== > --- trunk/reactos/ntoskrnl/mm/ARM3/miarm.h [iso-8859-1] (original) > +++ trunk/reactos/ntoskrnl/mm/ARM3/miarm.h [iso-8859-1] Tue Nov 5 > 22:03:42 2013 > @@ -1197,6 +1197,30 @@ > // > FORCEINLINE > VOID > +MiUnlockProcessWorkingSetShared(IN PEPROCESS Process, > + IN PETHREAD Thread) { > + /* Make sure we are the owner of a safe acquisition (because shared) */ > + ASSERT(MI_WS_OWNER(Process)); > + ASSERT(!MI_IS_WS_UNSAFE(Process)); > + > + /* Ensure we are in a shared acquisition */ > + ASSERT(Thread->OwnsProcessWorkingSetShared == TRUE); > + ASSERT(Thread->OwnsProcessWorkingSetExclusive == FALSE); > + > + /* Don't claim the lock anylonger */ > + Thread->OwnsProcessWorkingSetShared = FALSE; > + > + /* Release the lock and re-enable APCs */ > + ExReleasePushLockShared(&Process->Vm.WorkingSetMutex); > + KeLeaveGuardedRegion(); > +} > + > +// > +// Unlocks the working set for the given process // FORCEINLINE VOID > MiUnlockProcessWorkingSetUnsafe(IN PEPROCESS Process, > IN PETHREAD Thread) { @@ -1330,7 +1354,7 @@ > else > { > /* Owner is shared (implies safe), release normally */ > - ASSERT(FALSE); > + MiUnlockProcessWorkingSetShared(Process, Thread); > *Safe = TRUE; > *Shared = TRUE; > } > @@ -1343,16 +1367,24 @@ > IN BOOLEAN Safe, > IN BOOLEAN Shared) { > - ASSERT(Shared == FALSE); > - > /* Check if this was a safe lock or not */ > if (Safe) > { > - /* Reacquire safely */ > - MiLockProcessWorkingSet(Process, Thread); > + if (Shared) > + { > + /* Reacquire safely & shared */ > + MiLockProcessWorkingSetShared(Process, Thread); > + } > + else > + { > + /* Reacquire safely */ > + MiLockProcessWorkingSet(Process, Thread); > + } > } > else > { > + /* Unsafe lock cannot be shared */ > + ASSERT(Shared == FALSE); > /* Reacquire unsafely */ > MiLockProcessWorkingSetUnsafe(Process, Thread); > } > > > > _______________________________________________ > Ros-dev mailing list > Ros-dev@reactos.org > http://www.reactos.org/mailman/listinfo/ros-dev -- Pierre Schweitzer <pie...@reactos.org> System Administrator ReactOS Foundation
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________ Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev