summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Barnes <robbarnes@google.com>2023-04-20 10:18:40 -0600
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-04-24 15:40:26 +0000
commit6819bb3685b6fef44e08ad5f94dcb494be6a5dcb (patch)
treeb510cfa9e06f2b7af0b272ec75bc0b06a8eca03c
parentce23f23d1a43782c6dacbfc443ab3b3d2ef4f738 (diff)
downloadchrome-ec-6819bb3685b6fef44e08ad5f94dcb494be6a5dcb.tar.gz
tasks: Add task_enabled function
Add task_enabled function that simply check if a task is enabled or not. BUG=b:278792557 BRANCH=None TEST=Manually tested Change-Id: I0faccec603bc6d0226ad2ecbde2d90a6c233dd74 Signed-off-by: Rob Barnes <robbarnes@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4455297 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
-rw-r--r--core/cortex-m/task.c5
-rw-r--r--core/cortex-m0/task.c5
-rw-r--r--core/minute-ia/task.c5
-rw-r--r--core/nds32/task.c5
-rw-r--r--core/riscv-rv32i/task.c5
-rw-r--r--include/task.h5
6 files changed, 30 insertions, 0 deletions
diff --git a/core/cortex-m/task.c b/core/cortex-m/task.c
index 70efe04507..336cafc99a 100644
--- a/core/cortex-m/task.c
+++ b/core/cortex-m/task.c
@@ -510,6 +510,11 @@ void task_enable_task(task_id_t tskid)
atomic_or(&tasks_enabled, BIT(tskid));
}
+bool task_enabled(task_id_t tskid)
+{
+ return tasks_enabled & BIT(tskid);
+}
+
void task_disable_task(task_id_t tskid)
{
atomic_clear_bits(&tasks_enabled, BIT(tskid));
diff --git a/core/cortex-m0/task.c b/core/cortex-m0/task.c
index b6f0884465..f63e9824db 100644
--- a/core/cortex-m0/task.c
+++ b/core/cortex-m0/task.c
@@ -445,6 +445,11 @@ void task_enable_task(task_id_t tskid)
atomic_or(&tasks_enabled, BIT(tskid));
}
+bool task_enabled(task_id_t tskid)
+{
+ return tasks_enabled & BIT(tskid);
+}
+
void task_disable_task(task_id_t tskid)
{
atomic_clear_bits(&tasks_enabled, BIT(tskid));
diff --git a/core/minute-ia/task.c b/core/minute-ia/task.c
index 524314815c..3e072344df 100644
--- a/core/minute-ia/task.c
+++ b/core/minute-ia/task.c
@@ -404,6 +404,11 @@ void task_enable_task(task_id_t tskid)
atomic_or(&tasks_enabled, BIT(tskid));
}
+bool task_enabled(task_id_t tskid)
+{
+ return tasks_enabled & BIT(tskid);
+}
+
void task_disable_task(task_id_t tskid)
{
atomic_clear_bits(&tasks_enabled, BIT(tskid));
diff --git a/core/nds32/task.c b/core/nds32/task.c
index 964c9c9d73..201c8731fc 100644
--- a/core/nds32/task.c
+++ b/core/nds32/task.c
@@ -520,6 +520,11 @@ void task_enable_task(task_id_t tskid)
atomic_or(&tasks_enabled, BIT(tskid));
}
+bool task_enabled(task_id_t tskid)
+{
+ return tasks_enabled & BIT(tskid);
+}
+
void task_disable_task(task_id_t tskid)
{
atomic_clear_bits(&tasks_enabled, BIT(tskid));
diff --git a/core/riscv-rv32i/task.c b/core/riscv-rv32i/task.c
index f23ebc2ce4..977987277b 100644
--- a/core/riscv-rv32i/task.c
+++ b/core/riscv-rv32i/task.c
@@ -482,6 +482,11 @@ void task_enable_task(task_id_t tskid)
atomic_or(&tasks_enabled, BIT(tskid));
}
+bool task_enabled(task_id_t tskid)
+{
+ return tasks_enabled & BIT(tskid);
+}
+
void task_disable_task(task_id_t tskid)
{
atomic_clear_bits(&tasks_enabled, BIT(tskid));
diff --git a/include/task.h b/include/task.h
index a527ca695a..02f3a65fd5 100644
--- a/include/task.h
+++ b/include/task.h
@@ -299,6 +299,11 @@ void task_enable_all_tasks(void);
void task_enable_task(task_id_t tskid);
/**
+ * Task is enabled.
+ */
+bool task_enabled(task_id_t tskid);
+
+/**
* Disable a task.
*
* If the task disable itself, this will cause an immediate reschedule.