Annotation of sys/arch/m88k/include/atomic.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: atomic.h,v 1.3 2007/03/21 05:28:51 miod Exp $ */
2:
3: /* Public Domain */
4:
5: #ifndef __M88K_ATOMIC_H__
6: #define __M88K_ATOMIC_H__
7:
8: #if defined(_KERNEL)
9:
10: static __inline void
11: atomic_setbits_int(__volatile unsigned int *uip, unsigned int v)
12: {
13: unsigned int old, new;
14:
15: do {
16: old = *uip;
17: new = old | v;
18: __asm__ __volatile__ ("xmem %0, %1, r0" : "+r"(new) : "r"(uip));
19: } while (old != new);
20: }
21:
22: static __inline void
23: atomic_clearbits_int(__volatile unsigned int *uip, unsigned int v)
24: {
25: unsigned int old, new;
26:
27: do {
28: old = *uip;
29: new = old & ~v;
30: __asm__ __volatile__ ("xmem %0, %1, r0" : "+r"(new) : "r"(uip));
31: } while (old != new);
32: }
33:
34: #endif /* defined(_KERNEL) */
35: #endif /* __M88K_ATOMIC_H__ */
CVSweb