v2.0.0
Macros | Functions
sync.h File Reference
`#include "pico.h"`
`#include "hardware/address_mapped.h"`
`#include "hardware/sync/spin_lock.h"`
Include dependency graph for sync.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Macros
#define | PARAM_ASSERTIONS_ENABLED_HARDWARE_SYNC 0
#define | remove_volatile_cast(t, x) ({__compiler_memory_barrier(); Clang_Pragma("clang diagnostic push"); Clang_Pragma("clang diagnostic ignored \"-Wcast-qual\""); (t)(x); Clang_Pragma("clang diagnostic pop"); })
#define | remove_volatile_cast_no_barrier(t, x) ({ Clang_Pragma("clang diagnostic push"); Clang_Pragma("clang diagnostic ignored \"-Wcast-qual\""); (t)(x); Clang_Pragma("clang diagnostic pop"); })

## Functions
static __force_inline void | __nop (void)
| Insert a NOP instruction in to the code path. More...
static __force_inline void | __sev (void)
| Insert a SEV instruction in to the code path. More...
static __force_inline void | __wfe (void)
| Insert a WFE instruction in to the code path. More...
static __force_inline void | __wfi (void)
| Insert a WFI instruction in to the code path. More...
static __force_inline void | __dmb (void)
| Insert a DMB instruction in to the code path. More...
static __force_inline void | __dsb (void)
| Insert a DSB instruction in to the code path. More...
static __force_inline void | __isb (void)
| Insert a ISB instruction in to the code path. More...
static __force_inline void | __mem_fence_acquire (void)
| Acquire a memory fence.
static __force_inline void | __mem_fence_release (void)
| Release a memory fence.
static __force_inline uint32_t | save_and_disable_interrupts (void)
| Save and disable interrupts. More...
static __force_inline void | restore_interrupts (uint32_t status)
| Restore interrupts to a specified state. More...
static __force_inline void | restore_interrupts_from_disabled (uint32_t status)
| Restore interrupts to a specified state with restricted transitions. More...
uint | next_striped_spin_lock_num (void)
| Return a spin lock number from the striped range. More...
void | spin_lock_claim (uint lock_num)
| Mark a spin lock as used. More...
void | spin_lock_claim_mask (uint32_t lock_num_mask)
| Mark multiple spin locks as used. More...
void | spin_lock_unclaim (uint lock_num)
| Mark a spin lock as no longer used. More...
int | spin_lock_claim_unused (bool required)
| Claim a free spin lock. More...
bool | spin_lock_is_claimed (uint lock_num)
| Determine if a spin lock is claimed. More...