20#ifndef LIBOPENCM3_CM3_SYNC_H
21#define LIBOPENCM3_CM3_SYNC_H
37#if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)
39uint32_t
__ldrex(
volatile uint32_t *addr);
40uint32_t
__strex(uint32_t val,
volatile uint32_t *addr);
48#define MUTEX_UNLOCKED 0
uint32_t mutex_trylock(mutex_t *m)
void mutex_lock(mutex_t *m)
uint32_t __strex(uint32_t val, volatile uint32_t *addr)
uint32_t __ldrex(volatile uint32_t *addr)
void mutex_unlock(mutex_t *m)