[BACK]Return to atomic.h CVS log [TXT][DIR] Up to [local] / sys / arch / arm / include

Annotation of sys/arch/arm/include/atomic.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: atomic.h,v 1.5 2007/03/17 23:42:06 drahn Exp $        */
        !             2:
        !             3: /* Public Domain */
        !             4:
        !             5: #ifndef __ARM_ATOMIC_H__
        !             6: #define __ARM_ATOMIC_H__
        !             7:
        !             8: #if defined(_KERNEL)
        !             9:
        !            10: /*
        !            11:  * on pre-v6 arm processors, it is necessary to disable interrupts if
        !            12:  * in the kernel and atomic updates are necessary without full mutexes
        !            13:  */
        !            14:
        !            15: static __inline void
        !            16: atomic_setbits_int(__volatile unsigned int *uip, unsigned int v)
        !            17: {
        !            18:        int oldirqstate;
        !            19:        oldirqstate = disable_interrupts(I32_bit|F32_bit);
        !            20:        *uip |= v;
        !            21:        restore_interrupts(oldirqstate);
        !            22: }
        !            23:
        !            24: static __inline void
        !            25: atomic_clearbits_int(__volatile unsigned int *uip, unsigned int v)
        !            26: {
        !            27:        int oldirqstate;
        !            28:        oldirqstate = disable_interrupts(I32_bit|F32_bit);
        !            29:        *uip &= ~v;
        !            30:        restore_interrupts(oldirqstate);
        !            31: }
        !            32:
        !            33: #endif /* defined(_KERNEL) */
        !            34: #endif /* __ARM_ATOMIC_H__ */

CVSweb