summaryrefslogtreecommitdiff
path: root/core/cortex-m/atomic.h
diff options
context:
space:
mode:
authorDawid Niedzwiecki <dn@semihalf.com>2020-10-28 09:40:57 +0100
committerCommit Bot <commit-bot@chromium.org>2020-10-30 07:03:12 +0000
commit9b1733d659d764140c825c0f32dab43de27410be (patch)
tree79774bb583961265bde08fb6cf710af170143e33 /core/cortex-m/atomic.h
parentdeef4e1aa7c347740e6c12e2ca3d6893ec19c2fb (diff)
downloadchrome-ec-9b1733d659d764140c825c0f32dab43de27410be.tar.gz
atomic: remove deprecated atomic functions
Remove deprecated_atomic_* functions since only atomic_* are now used. BUG=b:169151160 BRANCH=none TEST=buildall Signed-off-by: Dawid Niedzwiecki <dn@semihalf.com> Change-Id: I6b25cc81aec126662ed779cf0f9309dcb77a754e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2505142 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Diffstat (limited to 'core/cortex-m/atomic.h')
-rw-r--r--core/cortex-m/atomic.h64
1 files changed, 0 insertions, 64 deletions
diff --git a/core/cortex-m/atomic.h b/core/cortex-m/atomic.h
index 1f432e8d1e..67abfa4a77 100644
--- a/core/cortex-m/atomic.h
+++ b/core/cortex-m/atomic.h
@@ -13,90 +13,26 @@
typedef int atomic_t;
typedef atomic_t atomic_val_t;
-/**
- * Implements atomic arithmetic operations on 32-bit integers.
- *
- * It used load/store exclusive.
- * If you write directly the integer used as an atomic variable,
- * you must either clear explicitly the exclusive monitor (using clrex)
- * or do it in exception context (which clears the monitor).
- */
-#define ATOMIC_OP(asm_op, a, v) do { \
- uint32_t reg0, reg1; \
- \
- __asm__ __volatile__("1: ldrex %0, [%2]\n" \
- #asm_op" %0, %0, %3\n" \
- " strex %1, %0, [%2]\n" \
- " teq %1, #0\n" \
- " bne 1b" \
- : "=&r" (reg0), "=&r" (reg1) \
- : "r" (a), "r" (v) : "cc"); \
-} while (0)
-
-/*
- * The atomic_* functions are marked as deprecated as a part of the process of
- * transaction to Zephyr compatible atomic functions. These prefixes will be
- * removed in the following patches. Please see b:169151160 for more details.
- */
-
-static inline void deprecated_atomic_clear_bits(uint32_t volatile *addr,
- uint32_t bits)
-{
- ATOMIC_OP(bic, addr, bits);
-}
-
static inline void atomic_clear_bits(atomic_t *addr, atomic_val_t bits)
{
__atomic_fetch_and(addr, ~bits, __ATOMIC_SEQ_CST);
}
-static inline void deprecated_atomic_or(uint32_t volatile *addr, uint32_t bits)
-{
- ATOMIC_OP(orr, addr, bits);
-}
-
static inline atomic_val_t atomic_or(atomic_t *addr, atomic_val_t bits)
{
return __atomic_fetch_or(addr, bits, __ATOMIC_SEQ_CST);
}
-static inline void deprecated_atomic_add(uint32_t volatile *addr,
- uint32_t value)
-{
- ATOMIC_OP(add, addr, value);
-}
-
static inline atomic_val_t atomic_add(atomic_t *addr, atomic_val_t value)
{
return __atomic_fetch_add(addr, value, __ATOMIC_SEQ_CST);
}
-static inline void deprecated_atomic_sub(uint32_t volatile *addr,
- uint32_t value)
-{
- ATOMIC_OP(sub, addr, value);
-}
-
static inline atomic_val_t atomic_sub(atomic_t *addr, atomic_val_t value)
{
return __atomic_fetch_sub(addr, value, __ATOMIC_SEQ_CST);
}
-static inline uint32_t deprecated_atomic_read_clear(uint32_t volatile *addr)
-{
- uint32_t ret, tmp;
-
- __asm__ __volatile__(" mov %3, #0\n"
- "1: ldrex %0, [%2]\n"
- " strex %1, %3, [%2]\n"
- " teq %1, #0\n"
- " bne 1b"
- : "=&r" (ret), "=&r" (tmp)
- : "r" (addr), "r" (0) : "cc");
-
- return ret;
-}
-
static inline atomic_val_t atomic_read_clear(atomic_t *addr)
{
return __atomic_exchange_n(addr, 0, __ATOMIC_SEQ_CST);