Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(186)

Unified Diff: native_client_sdk/src/libraries/sdk_util/atomicops.h

Issue 18644009: [NaCl SDK] Upate atomic ops in nacl_io (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 'Move comment to correct location' Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: native_client_sdk/src/libraries/sdk_util/atomicops.h
diff --git a/native_client_sdk/src/libraries/sdk_util/atomicops.h b/native_client_sdk/src/libraries/sdk_util/atomicops.h
index 80d62d215712b05bfa5b9c141d25c4baf46674ce..8f993ce3fd43ce27635f4ff9033576e1e56c8f4d 100644
--- a/native_client_sdk/src/libraries/sdk_util/atomicops.h
+++ b/native_client_sdk/src/libraries/sdk_util/atomicops.h
@@ -21,6 +21,18 @@ inline Atomic32 AtomicAddFetch(volatile Atomic32* ptr, Atomic32 value) {
return __sync_add_and_fetch(ptr, value);
}
+inline Atomic32 AtomicAndFetch(volatile Atomic32* ptr, Atomic32 value) {
+ return __sync_and_and_fetch(ptr, value);
+}
+
+inline Atomic32 AtomicOrFetch(volatile Atomic32* ptr, Atomic32 value) {
+ return __sync_or_and_fetch(ptr, value);
+}
+
+inline Atomic32 AtomicXorFetch(volatile Atomic32* ptr, Atomic32 value) {
+ return __sync_xor_and_fetch(ptr, value);
+}
+
#else
#include <windows.h>
@@ -38,6 +50,19 @@ typedef long Atomic32;
inline Atomic32 AtomicAddFetch(volatile Atomic32* ptr, Atomic32 value) {
return InterlockedExchangeAdd(ptr, value);
}
+
+inline Atomic32 AtomicAndFetch(volatile Atomic32* ptr, Atomic32 value) {
+ return InterlockedAnd(ptr, value);
+}
+
+inline Atomic32 AtomicOrFetch(volatile Atomic32* ptr, Atomic32 value) {
+ return InterlockedOr(ptr, value);
+}
+
+inline Atomic32 AtomicXorFetch(volatile Atomic32* ptr, Atomic32 value) {
+ return InterlockedOr(ptr, value);
binji 2013/07/13 00:16:48 xor?
+}
+
#endif

Powered by Google App Engine
This is Rietveld 408576698