home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lxapi32.zip / Include / asm / atomic.h next >
C/C++ Source or Header  |  2002-04-26  |  744b  |  28 lines

  1. /* $Id: atomic.h,v 1.2 2002/04/26 23:09:17 smilcke Exp $ */
  2.  
  3. #ifndef __ARCH_I386_ATOMIC__
  4. #define __ARCH_I386_ATOMIC__
  5.  
  6. #define LOCK
  7.  
  8. typedef struct { int counter; } atomic_t;
  9.  
  10. #define ATOMIC_INIT(i)    { (i) }
  11.  
  12. #define atomic_read(v)        ((v)->counter)
  13. #define atomic_set(v,i)        (((v)->counter) = (i))
  14.  
  15. void atomic_add(int i, volatile atomic_t *v);
  16. void atomic_sub(int i, volatile atomic_t *v);
  17. void atomic_inc(volatile atomic_t *v);
  18. void atomic_dec(volatile atomic_t *v);
  19. int atomic_dec_and_test(volatile atomic_t *v);
  20. extern int atomic_add_negative(int i, volatile atomic_t *v);
  21.  
  22. /* These are x86-specific, used by some header files */
  23. #define atomic_clear_mask(mask, addr) 
  24.  
  25. #define atomic_set_mask(mask, addr) 
  26.  
  27. #endif
  28.