• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2020 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
22licenses(["notice"])  # Apache License 2.0
23
24pw_cc_library(
25    name = "binary_semaphore_headers",
26    hdrs = [
27        "public/pw_sync_threadx/binary_semaphore_inline.h",
28        "public/pw_sync_threadx/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    ],
36    deps = [
37        # TODO: This should depend on ThreadX but our third parties currently
38        # do not have Bazel support.
39        "//pw_chrono:system_clock",
40    ],
41)
42
43pw_cc_library(
44    name = "binary_semaphore",
45    srcs = [
46        "binary_semaphore.cc",
47    ],
48    deps = [
49        ":binary_semaphore_headers",
50        "//pw_chrono_threadx:system_clock_headers",
51        "//pw_interrupt:context",
52        "//pw_sync:binary_semaphore_facade",
53    ],
54)
55
56pw_cc_library(
57    name = "counting_semaphore_headers",
58    hdrs = [
59        "public/pw_sync_threadx/counting_semaphore_inline.h",
60        "public/pw_sync_threadx/counting_semaphore_native.h",
61        "public_overrides/pw_sync_backend/counting_semaphore_inline.h",
62        "public_overrides/pw_sync_backend/counting_semaphore_native.h",
63    ],
64    includes = [
65        "public",
66        "public_overrides",
67    ],
68    deps = [
69        # TODO: This should depend on ThreadX but our third parties currently
70        # do not have Bazel support.
71        "//pw_chrono:system_clock",
72    ],
73)
74
75pw_cc_library(
76    name = "counting_semaphore",
77    srcs = [
78        "counting_semaphore.cc",
79    ],
80    deps = [
81        ":counting_semaphore_headers",
82        "//pw_chrono_threadx:system_clock_headers",
83        "//pw_interrupt:context",
84        "//pw_sync:counting_semaphore_facade",
85    ],
86)
87
88pw_cc_library(
89    name = "mutex_headers",
90    hdrs = [
91        "public/pw_sync_threadx/mutex_inline.h",
92        "public/pw_sync_threadx/mutex_native.h",
93        "public_overrides/pw_sync_backend/mutex_inline.h",
94        "public_overrides/pw_sync_backend/mutex_native.h",
95    ],
96    includes = [
97        "public",
98        "public_overrides",
99    ],
100    deps = [
101        # TODO: This should depend on ThreadX but our third parties currently
102        # do not have Bazel support.
103        "//pw_sync:mutex_facade",
104    ],
105)
106
107pw_cc_library(
108    name = "mutex",
109    deps = [
110        ":mutex_headers",
111        "//pw_sync:mutex_facade",
112    ],
113)
114
115pw_cc_library(
116    name = "timed_mutex_headers",
117    hdrs = [
118        "public/pw_sync_threadx/timed_mutex_inline.h",
119        "public_overrides/pw_sync_backend/timed_mutex_inline.h",
120    ],
121    includes = [
122        "public",
123        "public_overrides",
124    ],
125    deps = [
126        # TODO: This should depend on ThreadX but our third parties currently
127        # do not have Bazel support.
128        "//pw_chrono:system_clock",
129        "//pw_sync:timed_mutex_facade",
130    ],
131)
132
133pw_cc_library(
134    name = "timed_mutex",
135    srcs = [
136        "timed_mutex.cc",
137    ],
138    deps = [
139        ":timed_mutex_headers",
140        "//pw_chrono_threadx:system_clock_headers",
141        "//pw_interrupt:context",
142        "//pw_sync:timed_mutex_facade",
143    ],
144)
145
146pw_cc_library(
147    name = "interrupt_spin_lock_headers",
148    hdrs = [
149        "public/pw_sync_threadx/interrupt_spin_lock_inline.h",
150        "public/pw_sync_threadx/interrupt_spin_lock_native.h",
151        "public_overrides/pw_sync_backend/interrupt_spin_lock_inline.h",
152        "public_overrides/pw_sync_backend/interrupt_spin_lock_native.h",
153    ],
154    includes = [
155        "public",
156        "public_overrides",
157    ],
158    # TODO: This should depend on ThreadX but our third parties currently
159    # do not have Bazel support.
160)
161
162pw_cc_library(
163    name = "interrupt_spin_lock",
164    srcs = [
165        "interrupt_spin_lock.cc",
166    ],
167    deps = [
168        ":interrupt_spin_lock_headers",
169        "//pw_sync:interrupt_spin_lock_facade",
170    ],
171)
172