Mesa (master): gallium: Provide unprotected atomic implementation for display and miniport interfaces .

Michał Król michal at kemper.freedesktop.org
Tue Mar 17 09:54:40 UTC 2009


Module: Mesa
Branch: master
Commit: 1e23dac869ccc08cbb959c63fedb3c82d3187f5a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1e23dac869ccc08cbb959c63fedb3c82d3187f5a

Author: Michal Krol <michal at vmware.com>
Date:   Tue Mar 17 10:54:08 2009 +0100

gallium: Provide unprotected atomic implementation for display and miniport interfaces.

---

 src/gallium/include/pipe/p_atomic.h |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/src/gallium/include/pipe/p_atomic.h b/src/gallium/include/pipe/p_atomic.h
index b9bf711..fb370b0 100644
--- a/src/gallium/include/pipe/p_atomic.h
+++ b/src/gallium/include/pipe/p_atomic.h
@@ -66,7 +66,21 @@ p_atomic_cmpxchg(struct pipe_atomic *v, int32_t old, int32_t new)
    return __sync_val_compare_and_swap(&v->count, old, new);
 }
 
-#elif (defined(PIPE_ARCH_X86) && defined(PIPE_CC_MSVC)) /* (defined(PIPE_CC_GCC)) */
+#elif (defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY) || defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)) /* (defined(PIPE_CC_GCC)) */
+
+struct pipe_atomic
+{
+   int32_t count;
+};
+
+#define p_atomic_set(_v, _i) ((_v)->count = (_i))
+#define p_atomic_read(_v) ((_v)->count)
+#define p_atomic_dec_zero(_v) ((boolean) --(_v)->count)
+#define p_atomic_inc(_v) ((void) (_v)->count++)
+#define p_atomic_dec(_v) ((void) (_v)->count--)
+#define p_atomic_cmpxchg(_v, old, new) ((_v)->count == old ? (_v)->count = (new) : (_v)->count)
+
+#elif (defined(PIPE_ARCH_X86) && defined(PIPE_CC_MSVC)) /* (defined(PIPE_SUBSYSTEM_WINDOWS_DISPLAY) || defined(PIPE_SUBSYSTEM_WINDOWS_MINIPORT)) */
 
 struct pipe_atomic
 {




More information about the mesa-commit mailing list