]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Windows: Switch to Interlocked ops for RDR Set/Clear
authorJeffrey Altman <jaltman@your-file-system.com>
Thu, 4 Apr 2013 03:33:40 +0000 (23:33 -0400)
committerJeffrey Altman <jaltman@your-file-system.com>
Sat, 6 Apr 2013 02:28:29 +0000 (19:28 -0700)
Switch to using interlocked operations for the SetFlag and ClearFlag
macros.

Change-Id: I2b071ae49f69d557c30d1280fb7877dde7f76f40
Reviewed-on: http://gerrit.openafs.org/9722
Reviewed-by: Peter Scott <pscott@kerneldrivers.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>
src/WINNT/afsrdr/kernel/fs/Include/AFSDefines.h
src/WINNT/afsrdr/kernel/lib/Include/AFSDefines.h

index 239e4ff9f28bc0214216767dc9cceaf9279659b3..fc1f595b32736d792fdcf6aa431dea31240639f6 100644 (file)
 #endif
 
 #ifndef SetFlag
-#define SetFlag(_F,_SF)       ((_F) |= (_SF))
+#define SetFlag(_F,_SF)       InterlockedOr(&(_F), (_SF))
 #endif
 
 #ifndef ClearFlag
-#define ClearFlag(_F,_SF)     ((_F) &= ~(_SF))
+#define ClearFlag(_F,_SF)     InterlockedAnd(&(_F), ~(_SF))
 #endif
 
 #define QuadAlign(Ptr) (                \
index cff945013933bf19917942a5f335dd83e8b2bca4..9e25bc1e35382ea321e460b9afda69b4569234ca 100644 (file)
@@ -218,11 +218,11 @@ NTSTATUS
 #endif
 
 #ifndef SetFlag
-#define SetFlag(_F,_SF)       ((_F) |= (_SF))
+#define SetFlag(_F,_SF)       InterlockedOr(&(_F), (_SF))
 #endif
 
 #ifndef ClearFlag
-#define ClearFlag(_F,_SF)     ((_F) &= ~(_SF))
+#define ClearFlag(_F,_SF)     InterlockedAnd(&(_F), ~(_SF))
 #endif
 
 #define QuadAlign(Ptr) (                \