From 1e23dac869ccc08cbb959c63fedb3c82d3187f5a Mon Sep 17 00:00:00 2001 From: Michal Krol Date: Tue, 17 Mar 2009 10:54:08 +0100 Subject: gallium: Provide unprotected atomic implementation for display and miniport interfaces. --- src/gallium/include/pipe/p_atomic.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/gallium/include/pipe') diff --git a/src/gallium/include/pipe/p_atomic.h b/src/gallium/include/pipe/p_atomic.h index b9bf711714..fb370b0d0e 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 { -- cgit v1.2.3