Mercurial > sdl-ios-xcode
changeset 3201:c297230efc75
Disabling 64 bit atomics operations until I figure out why they do not link.
author | Bob Pendleton <bob@pendleton.com> |
---|---|
date | Wed, 24 Jun 2009 22:24:23 +0000 |
parents | ef2c029a3a9d |
children | 3aa519a5c676 |
files | src/atomic/linux/SDL_atomic.c test/testatomic.c |
diffstat | 2 files changed, 41 insertions(+), 56 deletions(-) [+] |
line wrap: on
line diff
--- a/src/atomic/linux/SDL_atomic.c Wed Jun 24 20:20:57 2009 +0000 +++ b/src/atomic/linux/SDL_atomic.c Wed Jun 24 22:24:23 2009 +0000 @@ -20,8 +20,6 @@ slouken@libsdl.org */ -#ifdef SDL_ATOMIC_LINUX - #include "SDL.h" #include "SDL_config.h" #include "SDL_atomic.h" @@ -98,7 +96,8 @@ return __sync_sub_and_fetch(ptr, value); } -#ifdef SDL_HAS_64BIT_TYPE +/* #ifdef SDL_HAS_64BIT_TYPE */ +#if 0 Uint64 SDL_AtomicExchange64(Uint64 * ptr, Uint64 value) @@ -172,4 +171,3 @@ return __sync_sub_and_fetch(ptr, value); } #endif -#endif
--- a/test/testatomic.c Wed Jun 24 20:20:57 2009 +0000 +++ b/test/testatomic.c Wed Jun 24 22:24:23 2009 +0000 @@ -1,64 +1,51 @@ #include "SDL.h" +/* + Absolutely basic test just to see if we get the expected value after + calling each function. +*/ + int main(int argc, char **argv) { -/* int rv = 10; */ -/* volatile int atomic; */ -/* SDL_atomic_int_set(&atomic, 10); */ -/* if (SDL_atomic_int_get(&atomic) != 10) */ -/* printf("Error: "); */ -/* printf("SDL_atomic_int_set(atomic, 10): atomic-> %d\n", */ -/* SDL_atomic_int_get(&atomic)); */ + Uint32 val32 = 0; + Uint32 ret32 = 0; -/* SDL_atomic_int_add(&atomic, 10); */ -/* if (SDL_atomic_int_get(&atomic) != 20) */ -/* printf("Error: "); */ -/* printf("SDL_atomic_int_add(atomic, 10): atomic-> %d\n", */ -/* SDL_atomic_int_get(&atomic)); */ + Uint64 val64 = 0; + Uint64 ret64 = 0; -/* rv = SDL_atomic_int_cmp_xchg(&atomic, 20, 30); */ -/* if (rv != SDL_TRUE || SDL_atomic_int_get(&atomic) != 30) */ -/* printf("Error: "); */ -/* printf("SDL_atomic_int_cmp_xchg(atomic, 20, 30): rv-> %d, atomic-> %d\n", */ -/* rv, SDL_atomic_int_get(&atomic)); */ - -/* rv = SDL_atomic_int_cmp_xchg(&atomic, 20, 30); */ -/* if (rv != SDL_FALSE || SDL_atomic_int_get(&atomic) != 30) */ -/* printf("Error: "); */ -/* printf("SDL_atomic_int_cmp_xchg(atomic, 20, 40): rv-> %d, atomic-> %d\n", */ -/* rv, SDL_atomic_int_get(&atomic)); */ + SDL_bool tfval = SDL_FALSE; -/* rv = SDL_atomic_int_xchg_add(&atomic, 10); */ -/* if (rv != 30 || SDL_atomic_int_get(&atomic) != 40) */ -/* printf("Error: "); */ -/* printf("SDL_atomic_int_xchg_add(atomic, 10): rv-> %d, atomic-> %d\n", */ -/* rv, SDL_atomic_int_get(&atomic)); */ + ret32 = SDL_AtomicExchange32(&val32, 10); + tfval = SDL_AtomicCompareThenSet32(&val32, 10, 20); + tfval = SDL_AtomicTestThenSet32(&val32); + SDL_AtomicClear32(&val32); + ret32 = SDL_AtomicFetchThenIncrement32(&val32); + ret32 = SDL_AtomicFetchThenDecrement32(&val32); + ret32 = SDL_AtomicFetchThenAdd32(&val32, 10); + ret32 = SDL_AtomicFetchThenSubtract32(&val32, 10); + ret32 = SDL_AtomicIncrementThenFetch32(&val32); + ret32 = SDL_AtomicDecrementThenFetch32(&val32); + ret32 = SDL_AtomicAddThenFetch32(&val32, 10); + ret32 = SDL_AtomicSubtractThenFetch32(&val32, 10); -/* SDL_atomic_int_inc(&atomic); */ -/* if (SDL_atomic_int_get(&atomic) != 41) */ -/* printf("Error: "); */ -/* printf("SDL_atomic_int_inc(atomic): atomic-> %d\n", */ -/* SDL_atomic_int_get(&atomic)); */ +/* #ifdef SDL_HAS_64BIT_TYPE */ +#if 0 -/* rv = SDL_atomic_int_dec_test(&atomic); */ -/* if (rv != SDL_FALSE || SDL_atomic_int_get(&atomic) != 40) */ -/* printf("Error: "); */ -/* printf("SDL_atomic_int_dec_test(atomic): rv-> %d, atomic-> %d\n", */ -/* rv, SDL_atomic_int_get(&atomic)); */ + ret64 = SDL_AtomicExchange64(&val64, 10); + tfval = SDL_AtomicCompareThenSet64(&val64, 10, 20); + tfval = SDL_AtomicTestThenSet64(&val64); + SDL_AtomicClear64(&val64); + ret64 = SDL_AtomicFetchThenIncrement64(&val64); + ret64 = SDL_AtomicFetchThenDecrement64(&val64); + ret64 = SDL_AtomicFetchThenAdd64(&val64, 10); + ret64 = SDL_AtomicFetchThenSubtract64(&val64, 10); + ret64 = SDL_AtomicIncrementThenFetch64(&val64); + ret64 = SDL_AtomicDecrementThenFetch64(&val64); + ret64 = SDL_AtomicAddThenFetch64(&val64, 10); + ret64 = SDL_AtomicSubtractThenFetch64(&val64, 10); +#endif -/* SDL_atomic_int_set(&atomic, 1); */ -/* if (SDL_atomic_int_get(&atomic) != 1) */ -/* printf("Error: "); */ -/* printf("SDL_atomic_int_set(atomic, 1): atomic-> %d\n", */ -/* SDL_atomic_int_get(&atomic)); */ - -/* rv = SDL_atomic_int_dec_test(&atomic); */ -/* if (rv != SDL_TRUE || SDL_atomic_int_get(&atomic) != 0) */ -/* printf("Error: "); */ -/* printf("SDL_atomic_int_dec_test(atomic): rv-> %d, atomic-> %d\n", */ -/* rv, SDL_atomic_int_get(&atomic)); */ - - return 0; -} + return 0; + }