1#ifndef _INTERNAL_ATOMIC_H 2#define _INTERNAL_ATOMIC_H 3 4 5#define a_cas a_cas 6static inline int a_cas(volatile int *p, int t, int s) 7{ 8 /* FIXME: Temporary cas emulation */ 9 if(*p == t) 10 { 11 *p = s; 12 return t; 13 } 14 15 return *p; 16 17} 18 19#define a_cas_p a_cas_p 20static inline void *a_cas_p(volatile void *p, void *t, void *s) 21{ 22 /* FIXME: Temporary cas emulation */ 23 if(*((unsigned long *) p) == (unsigned long) t) 24 { 25 *((unsigned long *) p) = (unsigned long) s; 26 return t; 27 } 28 29 return (void *) *((unsigned long *) p); 30} 31 32#define a_barrier a_barrier 33static inline void a_barrier() 34{ 35 __asm__ __volatile__( "" : : : "memory" ); 36} 37#endif 38