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