embos: add third_party, SystemClock, and SpinLock support
Adds initial support for embOS v4 for 32bit targets. For now this
only adds third_party support to depend on embOS's RTOS.h header,
the pw::chrono::SystemClock based on OS_GetTime32 and the
pw::sync::SpinLock based on OS_IncDI & OS_DecRI.
Change-Id: I6faf815ab05a0b00b7006b4bcc62df713b219dfe
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/35601
Reviewed-by: Ewout van Bekkum <ewout@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Pigweed-Auto-Submit: Ewout van Bekkum <ewout@google.com>
Commit-Queue: Ewout van Bekkum <ewout@google.com>
diff --git a/pw_chrono_embos/BUILD b/pw_chrono_embos/BUILD
new file mode 100644
index 0000000..a65d083
--- /dev/null
+++ b/pw_chrono_embos/BUILD
@@ -0,0 +1,52 @@
+# Copyright 2021 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load(
+ "//pw_build:pigweed.bzl",
+ "pw_cc_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+licenses(["notice"]) # Apache License 2.0
+
+pw_cc_library(
+ name = "system_clock_headers",
+ hdrs = [
+ "public/pw_chrono_embos/config.h",
+ "public/pw_chrono_embos/system_clock_config.h",
+ "public/pw_chrono_embos/system_clock_constants.h",
+ "public_overrides/pw_chrono_backend/system_clock_config.h",
+ ],
+ includes = [
+ "public",
+ "public_overrides",
+ ],
+ deps = [
+ "//pw_chrono:epoch",
+ ],
+)
+
+pw_cc_library(
+ name = "system_clock",
+ srcs = [
+ "system_clock.cc",
+ ],
+ deps = [
+ ":system_clock_headers",
+ "//pw_chrono:system_clock_facade",
+ # TODO(pwbug/317): This should depend on embOS but our third parties
+ # currently do not have Bazel support.
+ ],
+)