diff options
author | Jack Rosenthal <jrosenth@chromium.org> | 2020-09-23 15:21:18 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-09-29 16:30:59 +0000 |
commit | d4be394be0b91a71b2f16ca476114b7470bc630f (patch) | |
tree | e08dd7e428be1d27b65c4bae3ba8a47e40c8b1a5 /core/cortex-m0 | |
parent | 9513a63a626021b071199d02b7c73112eb746833 (diff) | |
download | chrome-ec-d4be394be0b91a71b2f16ca476114b7470bc630f.tar.gz |
tree: rename atomic_* functions to deprecated_atomic_*
We will move to an API compatible with Zephyr's API. See the bug for
complete rationale and plan.
BUG=b:169151160
BRANCH=none
TEST=buildall
Signed-off-by: Jack Rosenthal <jrosenth@chromium.org>
Change-Id: Id611f663446abf00b24298a669f2ae47fef7f632
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2427507
Tested-by: Dawid Niedźwiecki <dn@semihalf.com>
Reviewed-by: Tom Hughes <tomhughes@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Diffstat (limited to 'core/cortex-m0')
-rw-r--r-- | core/cortex-m0/atomic.h | 19 | ||||
-rw-r--r-- | core/cortex-m0/task.c | 21 |
2 files changed, 25 insertions, 15 deletions
diff --git a/core/cortex-m0/atomic.h b/core/cortex-m0/atomic.h index 417c86a6c9..414e6a56c1 100644 --- a/core/cortex-m0/atomic.h +++ b/core/cortex-m0/atomic.h @@ -27,27 +27,36 @@ : "b" (a), "r" (v) : "cc"); \ } while (0) -static inline void atomic_clear(uint32_t volatile *addr, uint32_t bits) +/* + * 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(uint32_t volatile *addr, + uint32_t bits) { ATOMIC_OP(bic, addr, bits); } -static inline void atomic_or(uint32_t volatile *addr, uint32_t bits) +static inline void deprecated_atomic_or(uint32_t volatile *addr, uint32_t bits) { ATOMIC_OP(orr, addr, bits); } -static inline void atomic_add(uint32_t volatile *addr, uint32_t value) +static inline void deprecated_atomic_add(uint32_t volatile *addr, + uint32_t value) { ATOMIC_OP(add, addr, value); } -static inline void atomic_sub(uint32_t volatile *addr, uint32_t value) +static inline void deprecated_atomic_sub(uint32_t volatile *addr, + uint32_t value) { ATOMIC_OP(sub, addr, value); } -static inline uint32_t atomic_read_clear(uint32_t volatile *addr) +static inline uint32_t deprecated_atomic_read_clear(uint32_t volatile *addr) { uint32_t ret; diff --git a/core/cortex-m0/task.c b/core/cortex-m0/task.c index 5fa884fc3e..657ed88a73 100644 --- a/core/cortex-m0/task.c +++ b/core/cortex-m0/task.c @@ -334,7 +334,7 @@ static uint32_t __wait_evt(int timeout_us, task_id_t resched) ret = timer_arm(deadline, me); ASSERT(ret == EC_SUCCESS); } - while (!(evt = atomic_read_clear(&tsk->events))) { + while (!(evt = deprecated_atomic_read_clear(&tsk->events))) { /* * We need to ensure that the execution priority is actually * decreased after the "cpsie i" in the atomic operation above @@ -349,7 +349,7 @@ static uint32_t __wait_evt(int timeout_us, task_id_t resched) if (timeout_us > 0) { timer_cancel(me); /* Ensure timer event is clear, we no longer care about it */ - atomic_clear(&tsk->events, TASK_EVENT_TIMER); + deprecated_atomic_clear(&tsk->events, TASK_EVENT_TIMER); } return evt; } @@ -360,12 +360,12 @@ uint32_t task_set_event(task_id_t tskid, uint32_t event, int wait) ASSERT(receiver); /* Set the event bit in the receiver message bitmap */ - atomic_or(&receiver->events, event); + deprecated_atomic_or(&receiver->events, event); /* Re-schedule if priorities have changed */ if (in_interrupt_context()) { /* The receiver might run again */ - atomic_or(&tasks_ready, 1 << tskid); + deprecated_atomic_or(&tasks_ready, 1 << tskid); if (start_called) { /* * Trigger the scheduler when there's @@ -420,7 +420,8 @@ uint32_t task_wait_event_mask(uint32_t event_mask, int timeout_us) /* Re-post any other events collected */ if (events & ~event_mask) - atomic_or(¤t_task->events, events & ~event_mask); + deprecated_atomic_or(¤t_task->events, + events & ~event_mask); return events & event_mask; } @@ -435,12 +436,12 @@ void task_enable_all_tasks(void) void task_enable_task(task_id_t tskid) { - atomic_or(&tasks_enabled, BIT(tskid)); + deprecated_atomic_or(&tasks_enabled, BIT(tskid)); } void task_disable_task(task_id_t tskid) { - atomic_clear(&tasks_enabled, BIT(tskid)); + deprecated_atomic_clear(&tasks_enabled, BIT(tskid)); if (!in_interrupt_context() && tskid == task_get_current()) __schedule(0, 0); @@ -499,7 +500,7 @@ void mutex_lock(struct mutex *mtx) uint32_t id = 1 << task_get_current(); ASSERT(id != TASK_ID_INVALID); - atomic_or(&mtx->waiters, id); + deprecated_atomic_or(&mtx->waiters, id); while (1) { /* Try to get the lock (set 2 into the lock field) */ @@ -513,7 +514,7 @@ void mutex_lock(struct mutex *mtx) mtx->lock = 2; __asm__ __volatile__("cpsie i"); - atomic_clear(&mtx->waiters, id); + deprecated_atomic_clear(&mtx->waiters, id); } void mutex_unlock(struct mutex *mtx) @@ -539,7 +540,7 @@ void mutex_unlock(struct mutex *mtx) } /* Ensure no event is remaining from mutex wake-up */ - atomic_clear(&tsk->events, TASK_EVENT_MUTEX); + deprecated_atomic_clear(&tsk->events, TASK_EVENT_MUTEX); } void task_print_list(void) |