# osal\_atomic.h - [Overview](#section1874200677165628) - [Summary](#section151742198165628) - [Data Structures](#nested-classes) - [Functions](#func-members) ## **Overview** **Related Modules:** [OSAL](OSAL.md) **Description:** Declares atomic and bit operation interfaces. This file provides interfaces such as reading and setting an atomic, incrementing and decrementing an atomic counter by 1. This file also provides interfaces such as checking the bit status of a variable, and setting and clearing the bit value of a variable. **Since:** 1.0 **Version:** 1.0 ## **Summary** ## Data Structures

Data Structure Name

Description

OsalAtomic

Describes an atomic.

## Functions

Function

Description

OsalAtomicRead (const OsalAtomic *v)

int32_t

Reads the counter of an atomic.

OsalAtomicSet (OsalAtomic *v, int32_t counter)

void

Sets the counter for an atomic.

OsalAtomicInc (OsalAtomic *v)

void

Increments the counter of an atomic by 1.

OsalAtomicDec (OsalAtomic *v)

void

Decrements the counter of an atomic by 1.

OsalTestBit (unsigned long nr, const volatile unsigned long *addr)

int32_t

Tests the value of a specified bit of a variable.

OsalTestSetBit (unsigned long nr, volatile unsigned long *addr)

int32_t

Sets the value of a specified bit of the variable and returns the bit value before the setting.

OsalTestClearBit (unsigned long nr, volatile unsigned long *addr)

int32_t

Clears the value of a specified bit of the variable and returns the bit value before clearing.

OsalClearBit (unsigned long nr, volatile unsigned long *addr)

void

Clears the value of a specified bit of the variable.