April 11, 2007 ATOMIC_OR 3

### NAME

atomic_or, atomic_or_32, atomic_or_uint, atomic_or_ulong, atomic_or_64, atomic_or_32_nv, atomic_or_uint_nv, atomic_or_ulong_nv, atomic_or_64_nv - atomic logical `or' operations

### SYNOPSIS

```void` atomic_or_32(```volatile uint32_t *ptr``, uint32_t bits`)
```void` atomic_or_uint(```volatile unsigned int *ptr``, unsigned int bits`)
```void` atomic_or_ulong(```volatile unsigned long *ptr``, unsigned long bits`)
```void` atomic_or_64(```volatile uint64_t *ptr``, uint64_t bits`)
```uint32_t` atomic_or_32_nv(```volatile uint32_t *ptr``, uint32_t bits`)
```unsigned` `int` atomic_or_uint_nv(```volatile unsigned int *ptr``, unsigned int bits`)
```unsigned` `long` atomic_or_ulong_nv(```volatile unsigned long *ptr``, unsigned long bits`)
```uint64_t` atomic_or_64_nv(```volatile uint64_t *ptr``, uint64_t bits`)

### DESCRIPTION

The atomic_or family of functions load the value of the variable referenced by ```ptr`, perform a logical `or' with the value ```bits`, and store the result back to the variable referenced by ```ptr` in an atomic fashion.

The *_nv(``) variants of these functions return the new value.

The 64-bit variants of these functions are available only on platforms that can support atomic 64-bit memory access. Applications can check for the availability of 64-bit atomic memory operations by testing if the pre-processor macro ```__HAVE_ATOMIC64_OPS` is defined.

### SEE ALSO

atomic_ops(3)

### HISTORY

The atomic_or functions first appeared in NetBSD5.0.