ATOMIC_CAS(9F)          Kernel Functions for Drivers          ATOMIC_CAS(9F)
NAME
       atomic_cas, atomic_cas_8, atomic_cas_uchar, atomic_cas_16,
       atomic_cas_ushort, atomic_cas_32, atomic_cas_uint, atomic_cas_ulong,
       atomic_cas_64, atomic_cas_ptr - atomic compare and swap operations
SYNOPSIS
       #include <sys/atomic.h>       
uint8_t atomic_cas_8(
volatile uint8_t *target, 
uint8_t cmp, 
uint8_t            newval);       
uchar_t atomic_cas_uchar(
volatile uchar_t *target, 
uchar_t cmp, 
uchar_t            newval);       
uint16_t atomic_cas_16(
volatile uint16_t *target, 
uint16_t cmp, 
uint16_t            newval);       
ushort_t atomic_cas_ushort(
volatile ushort_t *target, 
ushort_t cmp,            
ushort_t newval);       
uint32_t atomic_cas_32(
volatile uint32_t *target, 
uint32_t cmp, 
uint32_t            newval);       
uint_t atomic_cas_uint(
volatile uint_t *target, 
uint_t cmp, 
uint_t newval);       
ulong_t atomic_cas_ulong(
volatile ulong_t *target, 
ulong_t cmp, 
ulong_t            newval);       
uint64_t atomic_cas_64(
volatile uint64_t *target, 
uint64_t cmp, 
uint64_t            newval);       
void *atomic_cas_ptr(
volatile void *target, 
void *cmp, 
void *newval);
DESCRIPTION
       These functions enable a compare and swap operation to occur
       atomically. The value stored in 
target is compared with 
cmp. If these
       values are equal, the value stored in 
target is replaced with 
newval.
       The old value stored in 
target is returned by the function whether or
       not the replacement occurred.
RETURN VALUES
       These functions return the old of *
target.
ERRORS
       No errors are defined.
CONTEXT
       These functions can be called from user, interrupt, or kernel
       context.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Committed       |
       +--------------------+-----------------+
SEE ALSO
       atomic_ops(3C), 
attributes(7), 
atomic_add(9F), 
atomic_and(9F),       
atomic_bits(9F), 
atomic_dec(9F), 
atomic_inc(9F), 
atomic_or(9F),       
atomic_swap(9F), 
membar_ops(9F)                              January 16, 2006                ATOMIC_CAS(9F)