blob: 23ad1ff35fa1710ccea70317623180fa5772a5a0 [file] [log] [blame]
Ewout van Bekkum41daf162021-03-03 13:57:28 -08001# Copyright 2021 The Pigweed Authors
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may not
4# use this file except in compliance with the License. You may obtain a copy of
5# the License at
6#
7# https://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations under
13# the License.
14
15load(
16 "//pw_build:pigweed.bzl",
17 "pw_cc_library",
18)
19
20package(default_visibility = ["//visibility:public"])
21
Rob Mohr5fc25412021-06-23 09:35:23 -070022licenses(["notice"])
Ewout van Bekkum41daf162021-03-03 13:57:28 -080023
24pw_cc_library(
Ewout van Bekkume11ed692021-03-05 11:02:18 -080025 name = "binary_semaphore_headers",
26 hdrs = [
27 "public/pw_sync_embos/binary_semaphore_inline.h",
28 "public/pw_sync_embos/binary_semaphore_native.h",
29 "public_overrides/pw_sync_backend/binary_semaphore_inline.h",
30 "public_overrides/pw_sync_backend/binary_semaphore_native.h",
31 ],
32 includes = [
33 "public",
34 "public_overrides",
35 ],
Nathaniel Broughc2d57812021-04-18 22:52:00 +080036 target_compatible_with = [
37 "//pw_build/constraints/rtos:embos",
38 ],
Ewout van Bekkume11ed692021-03-05 11:02:18 -080039 deps = [
40 # TODO(pwbug/317): This should depend on embOS but our third parties
41 # currently do not have Bazel support.
42 "//pw_chrono:system_clock",
43 "//pw_chrono_embos:system_clock_headers",
44 ],
45)
46
47pw_cc_library(
48 name = "binary_semaphore",
49 srcs = [
50 "binary_semaphore.cc",
51 ],
Nathaniel Broughc2d57812021-04-18 22:52:00 +080052 target_compatible_with = [
53 "//pw_build/constraints/rtos:embos",
54 ],
Ewout van Bekkume11ed692021-03-05 11:02:18 -080055 deps = [
56 ":binary_semaphore_headers",
57 "//pw_interrupt:context",
58 "//pw_sync:binary_semaphore_facade",
59 ],
60)
61
62pw_cc_library(
63 name = "counting_semaphore_headers",
64 hdrs = [
65 "public/pw_sync_embos/counting_semaphore_inline.h",
66 "public/pw_sync_embos/counting_semaphore_native.h",
67 "public_overrides/pw_sync_backend/counting_semaphore_inline.h",
68 "public_overrides/pw_sync_backend/counting_semaphore_native.h",
69 ],
70 includes = [
71 "public",
72 "public_overrides",
73 ],
Nathaniel Broughc2d57812021-04-18 22:52:00 +080074 target_compatible_with = [
75 "//pw_build/constraints/rtos:embos",
76 ],
Ewout van Bekkume11ed692021-03-05 11:02:18 -080077 deps = [
78 # TODO(pwbug/317): This should depend on embOS but our third parties
79 # currently do not have Bazel support.
80 "//pw_chrono:system_clock",
81 "//pw_chrono_embos:system_clock_headers",
82 ],
83)
84
85pw_cc_library(
86 name = "counting_semaphore",
87 srcs = [
88 "counting_semaphore.cc",
89 ],
Nathaniel Broughc2d57812021-04-18 22:52:00 +080090 target_compatible_with = [
91 "//pw_build/constraints/rtos:embos",
92 ],
Ewout van Bekkume11ed692021-03-05 11:02:18 -080093 deps = [
94 ":counting_semaphore_headers",
95 "//pw_interrupt:context",
96 "//pw_sync:counting_semaphore_facade",
97 ],
98)
99
Ewout van Bekkume11ed692021-03-05 11:02:18 -0800100pw_cc_library(
Ewout van Bekkum99a6c202021-03-05 08:44:29 -0800101 name = "mutex_headers",
102 hdrs = [
103 "public/pw_sync_embos/mutex_inline.h",
104 "public/pw_sync_embos/mutex_native.h",
105 "public_overrides/pw_sync_backend/mutex_inline.h",
106 "public_overrides/pw_sync_backend/mutex_native.h",
107 ],
108 includes = [
109 "public",
110 "public_overrides",
111 ],
Nathaniel Broughc2d57812021-04-18 22:52:00 +0800112 target_compatible_with = [
113 "//pw_build/constraints/rtos:embos",
114 ],
Ewout van Bekkum99a6c202021-03-05 08:44:29 -0800115 deps = [
116 # TODO(pwbug/317): This should depend on embOS but our third parties
117 # currently do not have Bazel support.
Ewout van Bekkum6f5b8fb2021-04-06 16:15:22 -0700118 "//pw_sync:mutex_facade",
Ewout van Bekkum99a6c202021-03-05 08:44:29 -0800119 ],
120)
121
122pw_cc_library(
123 name = "mutex",
Nathaniel Broughc2d57812021-04-18 22:52:00 +0800124 target_compatible_with = [
125 "//pw_build/constraints/rtos:embos",
126 ],
Ewout van Bekkum99a6c202021-03-05 08:44:29 -0800127 deps = [
128 ":mutex_headers",
Ewout van Bekkum99a6c202021-03-05 08:44:29 -0800129 "//pw_sync:mutex_facade",
130 ],
131)
132
133pw_cc_library(
Ewout van Bekkum6f5b8fb2021-04-06 16:15:22 -0700134 name = "timed_mutex_headers",
135 hdrs = [
136 "public/pw_sync_embos/timed_mutex_inline.h",
137 "public_overrides/pw_sync_backend/timed_mutex_inline.h",
138 ],
139 includes = [
140 "public",
141 "public_overrides",
142 ],
Nathaniel Broughc2d57812021-04-18 22:52:00 +0800143 target_compatible_with = [
144 "//pw_build/constraints/rtos:embos",
145 ],
Ewout van Bekkum6f5b8fb2021-04-06 16:15:22 -0700146 deps = [
147 # TODO(pwbug/317): This should depend on embOS but our third parties
148 # currently do not have Bazel support.
149 "//pw_chrono:system_clock",
150 "//pw_sync:timed_mutex_facade",
151 ],
152)
153
154pw_cc_library(
155 name = "timed_mutex",
156 srcs = [
157 "timed_mutex.cc",
158 ],
Nathaniel Broughc2d57812021-04-18 22:52:00 +0800159 target_compatible_with = [
160 "//pw_build/constraints/rtos:embos",
161 ],
Ewout van Bekkum6f5b8fb2021-04-06 16:15:22 -0700162 deps = [
163 ":timed_mutex_headers",
Nathaniel Brougha1113be2021-03-07 09:05:41 +0800164 "//pw_chrono_embos:system_clock_headers",
Ewout van Bekkum6f5b8fb2021-04-06 16:15:22 -0700165 "//pw_interrupt:context",
166 "//pw_sync:timed_mutex_facade",
Ewout van Bekkum6f5b8fb2021-04-06 16:15:22 -0700167 ],
168)
169
Ewout van Bekkum6f5b8fb2021-04-06 16:15:22 -0700170pw_cc_library(
Ewout van Bekkum126e0112021-03-12 10:59:49 -0800171 name = "interrupt_spin_lock_headers",
Ewout van Bekkum41daf162021-03-03 13:57:28 -0800172 hdrs = [
Ewout van Bekkum126e0112021-03-12 10:59:49 -0800173 "public/pw_sync_embos/interrupt_spin_lock_inline.h",
174 "public/pw_sync_embos/interrupt_spin_lock_native.h",
175 "public_overrides/pw_sync_backend/interrupt_spin_lock_inline.h",
176 "public_overrides/pw_sync_backend/interrupt_spin_lock_native.h",
Ewout van Bekkum41daf162021-03-03 13:57:28 -0800177 ],
178 includes = [
179 "public",
180 "public_overrides",
181 ],
Nathaniel Broughc2d57812021-04-18 22:52:00 +0800182 target_compatible_with = [
183 "//pw_build/constraints/rtos:embos",
184 ],
Ewout van Bekkum41daf162021-03-03 13:57:28 -0800185 # TODO(pwbug/317): This should depend on embOS but our third parties
186 # currently do not have Bazel support.
187)
188
189pw_cc_library(
Ewout van Bekkum126e0112021-03-12 10:59:49 -0800190 name = "interrupt_spin_lock",
Ewout van Bekkum41daf162021-03-03 13:57:28 -0800191 srcs = [
Ewout van Bekkum126e0112021-03-12 10:59:49 -0800192 "interrupt_spin_lock.cc",
Ewout van Bekkum41daf162021-03-03 13:57:28 -0800193 ],
Nathaniel Broughc2d57812021-04-18 22:52:00 +0800194 target_compatible_with = [
195 "//pw_build/constraints/rtos:embos",
196 ],
Ewout van Bekkum41daf162021-03-03 13:57:28 -0800197 deps = [
Ewout van Bekkum126e0112021-03-12 10:59:49 -0800198 ":interrupt_spin_lock_headers",
199 "//pw_sync:interrupt_spin_lock_facade",
Ewout van Bekkum41daf162021-03-03 13:57:28 -0800200 ],
201)