@web-font-path: "roboto-debian.css";
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"); })
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"); })