mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-31 22:25:35 -04:00
add atomic operations for Blackfin parts
Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
bdf80e58af
commit
d3c6e2b097
1 changed files with 23 additions and 0 deletions
|
|
@ -1079,6 +1079,29 @@ static __inline__ int atomic_sub_return(int i, volatile atomic_t *v)
|
||||||
|
|
||||||
#endif /* __sh__ */
|
#endif /* __sh__ */
|
||||||
|
|
||||||
|
#ifdef __bfin__
|
||||||
|
|
||||||
|
#include <bfin_fixed_code.h>
|
||||||
|
|
||||||
|
typedef struct { volatile int counter; } atomic_t;
|
||||||
|
|
||||||
|
#define ATOMIC_INIT(i) { (i) }
|
||||||
|
|
||||||
|
#define atomic_read(v) ((v)->counter)
|
||||||
|
#define atomic_set(v,i) (((v)->counter) = (i))
|
||||||
|
#define atomic_add(i,v) bfin_atomic_add32(&(v)->counter, i)
|
||||||
|
#define atomic_sub(i,v) bfin_atomic_sub32(&(v)->counter, i)
|
||||||
|
#define atomic_inc(v) bfin_atomic_inc32(&(v)->counter);
|
||||||
|
#define atomic_dec(v) bfin_atomic_dec32(&(v)->counter);
|
||||||
|
|
||||||
|
#define mb() __asm__ __volatile__ ("" : : : "memory")
|
||||||
|
#define rmb() mb()
|
||||||
|
#define wmb() mb()
|
||||||
|
|
||||||
|
#define IATOMIC_DEFINED 1
|
||||||
|
|
||||||
|
#endif /* __bfin__ */
|
||||||
|
|
||||||
#ifndef IATOMIC_DEFINED
|
#ifndef IATOMIC_DEFINED
|
||||||
/*
|
/*
|
||||||
* non supported architecture.
|
* non supported architecture.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue