home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
lxapi32.zip
/
Include
/
asm
/
atomic.h
next >
Wrap
C/C++ Source or Header
|
2002-04-26
|
744b
|
28 lines
/* $Id: atomic.h,v 1.2 2002/04/26 23:09:17 smilcke Exp $ */
#ifndef __ARCH_I386_ATOMIC__
#define __ARCH_I386_ATOMIC__
#define LOCK
typedef struct { int counter; } atomic_t;
#define ATOMIC_INIT(i) { (i) }
#define atomic_read(v) ((v)->counter)
#define atomic_set(v,i) (((v)->counter) = (i))
void atomic_add(int i, volatile atomic_t *v);
void atomic_sub(int i, volatile atomic_t *v);
void atomic_inc(volatile atomic_t *v);
void atomic_dec(volatile atomic_t *v);
int atomic_dec_and_test(volatile atomic_t *v);
extern int atomic_add_negative(int i, volatile atomic_t *v);
/* These are x86-specific, used by some header files */
#define atomic_clear_mask(mask, addr)
#define atomic_set_mask(mask, addr)
#endif