osal_spinlock.h

Overview

Related Modules:

OSAL

Description:

Declares spinlock types and interfaces.

This file provides the interfaces for initializing, destroying, obtaining, and releasing a spinlock, the interfaces for obtaining a spinlock and disabling the interrupt request (IRQ), releasing a spinlock and enabling the IRQ, obtaining a spinlock, disabling the IRQ, and saving its status, and releasing a spinlock, enabling the IRQ, and restoring the saved IRQ status. The spinlock needs to be destroyed when it is no longer used.

Since:

1.0

Version:

1.0

Summary

Data Structures

Data Structure Name Description
OsalSpinlock Describes a spinlock.

Macros

Macro Name and Value Description
OSAL_DECLARE_SPINLOCK(spinlock)   OsalSpinlock spinlock Defines a spinlock.

Functions

Function Name Description
OsalSpinInit (OsalSpinlock spinlock) int32_t Initializes a spinlock.
OsalSpinDestroy (OsalSpinlock spinlock) int32_t Destroys a spinlock.
OsalSpinLock (OsalSpinlock spinlock) int32_t Obtains a spinlock.
OsalSpinUnlock (OsalSpinlock spinlock) int32_t Releases a spinlock.
OsalSpinLockIrq (OsalSpinlock spinlock) int32_t Obtains a spinlock and disables the IRQ.
OsalSpinUnlockIrq (OsalSpinlock spinlock) int32_t Releases a spinlock and enables the IRQ.
OsalSpinLockIrqSave (OsalSpinlock spinlock, uint32_t flags) int32_t Obtains a spinlock, disables the IRQ, and saves its status.
OsalSpinUnlockIrqRestore (OsalSpinlock spinlock, uint32_t flags) int32_t Releases a spinlock, enables the IRQ, and restores the saved IRQ status.