~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/asm-sparc64/atomic.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* $Id: atomic.h,v 1.21 2000/10/03 07:28:56 anton Exp $
  2  * atomic.h: Thankfully the V9 is at least reasonable for this
  3  *           stuff.
  4  *
  5  * Copyright (C) 1996, 1997, 2000 David S. Miller (davem@redhat.com)
  6  */
  7 
  8 #ifndef __ARCH_SPARC64_ATOMIC__
  9 #define __ARCH_SPARC64_ATOMIC__
 10 
 11 typedef struct { volatile int counter; } atomic_t;
 12 #define ATOMIC_INIT(i)  { (i) }
 13 
 14 #define atomic_read(v)          ((v)->counter)
 15 #define atomic_set(v, i)        (((v)->counter) = i)
 16 
 17 extern int __atomic_add(int, atomic_t *);
 18 extern int __atomic_sub(int, atomic_t *);
 19 
 20 #define atomic_add(i, v) ((void)__atomic_add(i, v))
 21 #define atomic_sub(i, v) ((void)__atomic_sub(i, v))
 22 
 23 #define atomic_dec_return(v) __atomic_sub(1, v)
 24 #define atomic_inc_return(v) __atomic_add(1, v)
 25 
 26 #define atomic_sub_and_test(i, v) (__atomic_sub(i, v) == 0)
 27 #define atomic_dec_and_test(v) (__atomic_sub(1, v) == 0)
 28 
 29 #define atomic_inc(v) ((void)__atomic_add(1, v))
 30 #define atomic_dec(v) ((void)__atomic_sub(1, v))
 31 
 32 #endif /* !(__ARCH_SPARC64_ATOMIC__) */
 33 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.