Annotation of sys/arch/m88k/include/atomic.h, Revision 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