test/testatomic.c
changeset 3237 916f396fe65d
parent 3216 48a80f2a7ff2
child 3261 72b542f34739
equal deleted inserted replaced
3236:d7497988b677 3237:916f396fe65d
    21   
    21   
    22 int
    22 int
    23 main(int argc, char **argv)
    23 main(int argc, char **argv)
    24 {
    24 {
    25 
    25 
    26    volatile Uint8 val8 = 0;
       
    27    Uint8 ret8 = 0;
       
    28 
       
    29    volatile Uint16 val16 = 0;
       
    30    Uint16 ret16 = 0;
       
    31 
       
    32    volatile Uint32 val32 = 0;
    26    volatile Uint32 val32 = 0;
    33    Uint32 ret32 = 0;
    27    Uint32 ret32 = 0;
    34 
    28 
    35    volatile Uint64 val64 = 0;
    29    volatile Uint64 val64 = 0;
    36    Uint64 ret64 = 0;
    30    Uint64 ret64 = 0;
    37 
    31 
    38    SDL_bool tfret = SDL_FALSE;
    32    SDL_bool tfret = SDL_FALSE;
    39 
       
    40 
       
    41    printf("8 bit -----------------------------------------\n\n");
       
    42 
       
    43    ret8 = SDL_AtomicExchange8(&val8, 10);
       
    44    printf("Exchange8           ret=%d val=%d\n", ret8, val8);
       
    45    ret8 = SDL_AtomicExchange8(&val8, 0);
       
    46    printf("Exchange8           ret=%d val=%d\n", ret8, val8);
       
    47 
       
    48    val8 = 10;
       
    49    tfret = SDL_AtomicCompareThenSet8(&val8, 10, 20);
       
    50    printf("CompareThenSet8     tfret=%s val=%d\n", tf(tfret), val8);
       
    51    val8 = 10;
       
    52    tfret = SDL_AtomicCompareThenSet8(&val8, 0, 20);
       
    53    printf("CompareThenSet8     tfret=%s val=%d\n", tf(tfret), val8);
       
    54 
       
    55    val8 = 0;
       
    56    tfret = SDL_AtomicTestThenSet8(&val8);
       
    57    printf("TestThenSet8        tfret=%s val=%d\n", tf(tfret), val8);
       
    58    tfret = SDL_AtomicTestThenSet8(&val8);
       
    59    printf("TestThenSet8        tfret=%s val=%d\n", tf(tfret), val8);
       
    60 
       
    61    SDL_AtomicClear8(&val8);
       
    62    printf("Clear8              val=%d\n", val8);
       
    63 
       
    64    ret8 = SDL_AtomicFetchThenIncrement8(&val8);
       
    65    printf("FetchThenIncrement8 ret=%d val=%d\n", ret8, val8);
       
    66 
       
    67    ret8 = SDL_AtomicFetchThenDecrement8(&val8);
       
    68    printf("FetchThenDecrement8 ret=%d val=%d\n", ret8, val8);
       
    69 
       
    70    ret8 = SDL_AtomicFetchThenAdd8(&val8, 10);
       
    71    printf("FetchThenAdd8       ret=%d val=%d\n", ret8, val8);
       
    72 
       
    73    ret8 = SDL_AtomicFetchThenSubtract8(&val8, 10);
       
    74    printf("FetchThenSubtract8  ret=%d val=%d\n", ret8, val8);
       
    75 
       
    76    ret8 = SDL_AtomicIncrementThenFetch8(&val8);
       
    77    printf("IncrementThenFetch8 ret=%d val=%d\n", ret8, val8);
       
    78 
       
    79    ret8 = SDL_AtomicDecrementThenFetch8(&val8);
       
    80    printf("DecrementThenFetch8 ret=%d val=%d\n", ret8, val8);
       
    81 
       
    82    ret8 = SDL_AtomicAddThenFetch8(&val8, 10);
       
    83    printf("AddThenFetch8       ret=%d val=%d\n", ret8, val8);
       
    84 
       
    85    ret8 = SDL_AtomicSubtractThenFetch8(&val8, 10);
       
    86    printf("SubtractThenFetch8  ret=%d val=%d\n", ret8, val8);
       
    87 
       
    88 
       
    89    printf("16 bit -----------------------------------------\n\n");
       
    90 
       
    91    ret16 = SDL_AtomicExchange16(&val16, 10);
       
    92    printf("Exchange16           ret=%d val=%d\n", ret16, val16);
       
    93    ret16 = SDL_AtomicExchange16(&val16, 0);
       
    94    printf("Exchange16           ret=%d val=%d\n", ret16, val16);
       
    95 
       
    96    val16 = 10;
       
    97    tfret = SDL_AtomicCompareThenSet16(&val16, 10, 20);
       
    98    printf("CompareThenSet16     tfret=%s val=%d\n", tf(tfret), val16);
       
    99    val16 = 10;
       
   100    tfret = SDL_AtomicCompareThenSet16(&val16, 0, 20);
       
   101    printf("CompareThenSet16     tfret=%s val=%d\n", tf(tfret), val16);
       
   102 
       
   103    val16 = 0;
       
   104    tfret = SDL_AtomicTestThenSet16(&val16);
       
   105    printf("TestThenSet16        tfret=%s val=%d\n", tf(tfret), val16);
       
   106    tfret = SDL_AtomicTestThenSet16(&val16);
       
   107    printf("TestThenSet16        tfret=%s val=%d\n", tf(tfret), val16);
       
   108 
       
   109    SDL_AtomicClear16(&val16);
       
   110    printf("Clear16              val=%d\n", val16);
       
   111 
       
   112    ret16 = SDL_AtomicFetchThenIncrement16(&val16);
       
   113    printf("FetchThenIncrement16 ret=%d val=%d\n", ret16, val16);
       
   114 
       
   115    ret16 = SDL_AtomicFetchThenDecrement16(&val16);
       
   116    printf("FetchThenDecrement16 ret=%d val=%d\n", ret16, val16);
       
   117 
       
   118    ret16 = SDL_AtomicFetchThenAdd16(&val16, 10);
       
   119    printf("FetchThenAdd16       ret=%d val=%d\n", ret16, val16);
       
   120 
       
   121    ret16 = SDL_AtomicFetchThenSubtract16(&val16, 10);
       
   122    printf("FetchThenSubtract16  ret=%d val=%d\n", ret16, val16);
       
   123 
       
   124    ret16 = SDL_AtomicIncrementThenFetch16(&val16);
       
   125    printf("IncrementThenFetch16 ret=%d val=%d\n", ret16, val16);
       
   126 
       
   127    ret16 = SDL_AtomicDecrementThenFetch16(&val16);
       
   128    printf("DecrementThenFetch16 ret=%d val=%d\n", ret16, val16);
       
   129 
       
   130    ret16 = SDL_AtomicAddThenFetch16(&val16, 10);
       
   131    printf("AddThenFetch16       ret=%d val=%d\n", ret16, val16);
       
   132 
       
   133    ret16 = SDL_AtomicSubtractThenFetch16(&val16, 10);
       
   134    printf("SubtractThenFetch16  ret=%d val=%d\n", ret16, val16);
       
   135 
    33 
   136    printf("32 bit -----------------------------------------\n\n");
    34    printf("32 bit -----------------------------------------\n\n");
   137 
    35 
   138    ret32 = SDL_AtomicExchange32(&val32, 10);
    36    ret32 = SDL_AtomicExchange32(&val32, 10);
   139    printf("Exchange32           ret=%d val=%d\n", ret32, val32);
    37    printf("Exchange32           ret=%d val=%d\n", ret32, val32);