@web-font-path: "roboto-debian.css";
v2.2.0 (RP2040)
Loading...
Searching...
No Matches
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)
#define | remove_volatile_cast_no_barrier(t, x)

## Functions

static __force_inline void | __nop (void)
| Insert a NOP instruction in to the code path.
static __force_inline void | __sev (void)
| Insert a SEV instruction in to the code path.
static __force_inline void | __wfe (void)
| Insert a WFE instruction in to the code path.
static __force_inline void | __wfi (void)
| Insert a WFI instruction in to the code path.
static __force_inline void | __dmb (void)
| Insert a DMB instruction in to the code path.
static __force_inline void | __dsb (void)
| Insert a DSB instruction in to the code path.
static __force_inline void | __isb (void)
| Insert a ISB instruction in to the code path.
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 void | disable_interrupts (void)
| Explicitly disable interrupts on the calling core.
static __force_inline void | enable_interrupts (void)
| Explicitly enable interrupts on the calling core.
static __force_inline uint32_t | save_and_disable_interrupts (void)
| Disable interrupts on the calling core, returning the previous interrupt state.
static __force_inline void | restore_interrupts (uint32_t status)
| Restore interrupts to a specified state on the calling core.
static __force_inline void | restore_interrupts_from_disabled (uint32_t status)
| Restore interrupts to a specified state on the calling core with restricted transitions.
uint | next_striped_spin_lock_num (void)
| Return a spin lock number from the striped range.
void | spin_lock_claim (uint lock_num)
| Mark a spin lock as used.
void | spin_lock_claim_mask (uint32_t lock_num_mask)
| Mark multiple spin locks as used.
void | spin_lock_unclaim (uint lock_num)
| Mark a spin lock as no longer used.
int | spin_lock_claim_unused (bool required)
| Claim a free spin lock.
bool | spin_lock_is_claimed (uint lock_num)
| Determine if a spin lock is claimed.

## Macro Definition Documentation

## remove_volatile_cast

#define remove_volatile_cast | ( |  | t,
|  |  | x )

Value:
({__compiler_memory_barrier(); Clang_Pragma("clang diagnostic push"); Clang_Pragma("clang diagnostic ignored \"-Wcast-qual\""); (t)(x); Clang_Pragma("clang diagnostic pop"); })
__compiler_memory_barrier
static __always_inline void __compiler_memory_barrier(void)
Ensure that the compiler does not move memory access across this method call.
Definition compiler.h:176

## remove_volatile_cast_no_barrier

#define remove_volatile_cast_no_barrier | ( |  | t,
|  |  | x )

Value:
({ Clang_Pragma("clang diagnostic push"); Clang_Pragma("clang diagnostic ignored \"-Wcast-qual\""); (t)(x); Clang_Pragma("clang diagnostic pop"); })