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


Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

_______________________________________________
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev

Reply via email to