| 66 | } |
| 67 | |
| 68 | int32_t atomicMax(volatile int32_t* val, int32_t val2) |
| 69 | { |
| 70 | int32_t oldVal, newVal; |
| 71 | |
| 72 | do |
| 73 | { |
| 74 | PAUSE(); |
| 75 | oldVal = *val; |
| 76 | |
| 77 | if(val2 > oldVal) |
| 78 | newVal = val2; |
| 79 | else |
| 80 | newVal = oldVal; |
| 81 | |
| 82 | } while(atomicCompareExchange(val, newVal, oldVal) != oldVal); |
| 83 | |
| 84 | return *val; |
| 85 | } |
| 86 | |
| 87 | int32_t atomicExchange(volatile int32_t* val, int32_t val2) |
| 88 | { |
no test coverage detected