atomic.h revision 2b616c6c748ccca60ec7bdc3c781d84203c97b2b
0N/A * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
0N/A * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1065N/A#ifndef _SYS_ATOMIC_H
392N/A#define _SYS_ATOMIC_H
392N/A#ifdef __cplusplus
1065N/Aextern void *atomic_cas_ptr(volatile void *, void *, void *);
extern void *atomic_swap_ptr(volatile void *, void *);
extern void membar_enter(void);
extern void membar_exit(void);
extern void membar_producer(void);
extern void membar_consumer(void);
extern void atomic_inc_8();
extern void atomic_inc_uchar();
extern void atomic_inc_16();
extern void atomic_inc_ushort();
extern void atomic_inc_32();
extern void atomic_inc_uint();
extern void atomic_inc_ulong();
#if defined(_INT64_TYPE)
extern void atomic_inc_64();
extern void atomic_dec_8();
extern void atomic_dec_uchar();
extern void atomic_dec_16();
extern void atomic_dec_ushort();
extern void atomic_dec_32();
extern void atomic_dec_uint();
extern void atomic_dec_ulong();
#if defined(_INT64_TYPE)
extern void atomic_dec_64();
extern void atomic_add_8();
extern void atomic_add_char();
extern void atomic_add_16();
extern void atomic_add_short();
extern void atomic_add_32();
extern void atomic_add_int();
extern void atomic_add_ptr();
extern void atomic_add_long();
#if defined(_INT64_TYPE)
extern void atomic_add_64();
extern void atomic_or_8();
extern void atomic_or_uchar();
extern void atomic_or_16();
extern void atomic_or_ushort();
extern void atomic_or_32();
extern void atomic_or_uint();
extern void atomic_or_ulong();
#if defined(_INT64_TYPE)
extern void atomic_or_64();
extern void atomic_and_8();
extern void atomic_and_uchar();
extern void atomic_and_16();
extern void atomic_and_ushort();
extern void atomic_and_32();
extern void atomic_and_uint();
extern void atomic_and_ulong();
#if defined(_INT64_TYPE)
extern void atomic_and_64();
#if defined(_INT64_TYPE)
#if defined(_INT64_TYPE)
extern void *atomic_add_ptr_nv();
#if defined(_INT64_TYPE)
#if defined(_INT64_TYPE)
#if defined(_INT64_TYPE)
extern void *atomic_cas_ptr();
#if defined(_INT64_TYPE)
extern void *atomic_swap_ptr();
#if defined(_INT64_TYPE)
extern int atomic_set_long_excl();
extern int atomic_clear_long_excl();
extern void membar_enter();
extern void membar_exit();
extern void membar_producer();
extern void membar_consumer();
#if defined(_KERNEL)
#if defined(__sparc)
extern void *casptr(void *, void *, void *);
#if defined(__sparc)
#ifdef __cplusplus