diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2007-02-06 17:13:34 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2007-02-06 17:13:34 +0000 |
commit | f362ffa3807abff7ddf02a5444837d99e055118c (patch) | |
tree | fadacf8a1cfbb96801c55e8d68bb13d221849937 /sys/arch/arm/include | |
parent | 7db3ee67d9e72670d704be8f59c2fc3c4fe5684a (diff) |
Add machine/atomic.h to all architectures and define two operations
right now that are supposed to be atomic with respect to interrupts and
SMP: atomic_setbits_int and atomic_clearbits_int.
All architectures other than i386 and amd64 get dummy implementations
since at first we'll be replacing operations that are done with
"a |= bit" and "a &= ~bit" today. More proper implementations will follow
kettenis@, miod@ ok
Diffstat (limited to 'sys/arch/arm/include')
-rw-r--r-- | sys/arch/arm/include/atomic.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sys/arch/arm/include/atomic.h b/sys/arch/arm/include/atomic.h new file mode 100644 index 00000000000..8bf37567652 --- /dev/null +++ b/sys/arch/arm/include/atomic.h @@ -0,0 +1,20 @@ +/* $OpenBSD: atomic.h,v 1.3 2007/02/06 17:13:33 art Exp $ */ + +/* Public Domain */ + +#ifndef __ARM_ATOMIC_H__ +#define __ARM_ATOMIC_H__ + +static __inline void +atomic_setbits_int(__volatile unsigned int *uip, unsigned int v) +{ + *uip |= v; +} + +static __inline void +atomic_clearbits_int(__volatile unsigned int *uip, unsigned int v) +{ + *uip &= ~v; +} + +#endif |