pw_{sync,chrono}_threadx: Add initial ThreadX support
Adds initial ThreadX support through a set of backends for pw_sync
through pw_sync_threadx and pw_chrono through pw_chrono_threadx.
Change-Id: I3e310323cfce3d4bf07557273c2a86f91f6479d7
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/24900
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Ewout van Bekkum <ewout@google.com>
diff --git a/pw_sync_threadx/BUILD b/pw_sync_threadx/BUILD
index 54dff01..7b25c93 100644
--- a/pw_sync_threadx/BUILD
+++ b/pw_sync_threadx/BUILD
@@ -22,6 +22,102 @@
licenses(["notice"]) # Apache License 2.0
pw_cc_library(
+ name = "binary_semaphore_headers",
+ hdrs = [
+ "public/pw_sync_threadx/binary_semaphore_inline.h",
+ "public/pw_sync_threadx/binary_semaphore_native.h",
+ "public_overrides/pw_sync_backend/binary_semaphore_inline.h",
+ "public_overrides/pw_sync_backend/binary_semaphore_native.h",
+ ],
+ includes = [
+ "public",
+ "public_overrides",
+ ],
+ deps = [
+ # TODO: This should depend on ThreadX but our third parties currently
+ # do not have Bazel support.
+ "//pw_chrono:system_clock",
+ ],
+)
+
+pw_cc_library(
+ name = "binary_semaphore",
+ srcs = [
+ "binary_semaphore.cc",
+ ],
+ deps = [
+ ":binary_semaphore_headers",
+ "//pw_chrono_threadx:system_clock_headers",
+ "//pw_interrupt:context",
+ "//pw_sync:binary_semaphore_facade",
+ ],
+)
+
+pw_cc_library(
+ name = "counting_semaphore_headers",
+ hdrs = [
+ "public/pw_sync_threadx/counting_semaphore_inline.h",
+ "public/pw_sync_threadx/counting_semaphore_native.h",
+ "public_overrides/pw_sync_backend/counting_semaphore_inline.h",
+ "public_overrides/pw_sync_backend/counting_semaphore_native.h",
+ ],
+ includes = [
+ "public",
+ "public_overrides",
+ ],
+ deps = [
+ # TODO: This should depend on ThreadX but our third parties currently
+ # do not have Bazel support.
+ "//pw_chrono:system_clock",
+ ],
+)
+
+pw_cc_library(
+ name = "counting_semaphore",
+ srcs = [
+ "counting_semaphore.cc",
+ ],
+ deps = [
+ ":counting_semaphore_headers",
+ "//pw_chrono_threadx:system_clock_headers",
+ "//pw_interrupt:context",
+ "//pw_sync:counting_semaphore_facade",
+ ],
+)
+
+pw_cc_library(
+ name = "mutex_headers",
+ hdrs = [
+ "public/pw_sync_threadx/mutex_inline.h",
+ "public/pw_sync_threadx/mutex_native.h",
+ "public_overrides/pw_sync_backend/mutex_inline.h",
+ "public_overrides/pw_sync_backend/mutex_native.h",
+ ],
+ includes = [
+ "public",
+ "public_overrides",
+ ],
+ deps = [
+ # TODO: This should depend on ThreadX but our third parties currently
+ # do not have Bazel support.
+ "//pw_chrono:system_clock",
+ ],
+)
+
+pw_cc_library(
+ name = "mutex",
+ srcs = [
+ "mutex.cc",
+ ],
+ deps = [
+ ":mutex_headers",
+ "//pw_chrono_threadx:system_clock_headers",
+ "//pw_interrupt:context",
+ "//pw_sync:mutex_facade",
+ ],
+)
+
+pw_cc_library(
name = "spin_lock_headers",
hdrs = [
"public/pw_sync_threadx/spin_lock_inline.h",