1# 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 22licenses(["notice"]) 23 24pw_cc_library( 25 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 ], 36 target_compatible_with = [ 37 "//pw_build/constraints/rtos:embos", 38 ], 39 deps = [ 40 # TODO(b/234876414): 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 ], 52 target_compatible_with = [ 53 "//pw_build/constraints/rtos:embos", 54 ], 55 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 ], 74 target_compatible_with = [ 75 "//pw_build/constraints/rtos:embos", 76 ], 77 deps = [ 78 # TODO(b/234876414): 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 ], 90 target_compatible_with = [ 91 "//pw_build/constraints/rtos:embos", 92 ], 93 deps = [ 94 ":counting_semaphore_headers", 95 "//pw_interrupt:context", 96 "//pw_sync:counting_semaphore_facade", 97 ], 98) 99 100pw_cc_library( 101 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 ], 112 target_compatible_with = [ 113 "//pw_build/constraints/rtos:embos", 114 ], 115 deps = [ 116 # TODO(b/234876414): This should depend on embOS but our third parties 117 # currently do not have Bazel support. 118 "//pw_sync:mutex_facade", 119 ], 120) 121 122pw_cc_library( 123 name = "mutex", 124 target_compatible_with = [ 125 "//pw_build/constraints/rtos:embos", 126 ], 127 deps = [ 128 ":mutex_headers", 129 "//pw_sync:mutex_facade", 130 ], 131) 132 133pw_cc_library( 134 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 ], 143 target_compatible_with = [ 144 "//pw_build/constraints/rtos:embos", 145 ], 146 deps = [ 147 # TODO(b/234876414): 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 ], 159 target_compatible_with = [ 160 "//pw_build/constraints/rtos:embos", 161 ], 162 deps = [ 163 ":timed_mutex_headers", 164 "//pw_chrono_embos:system_clock_headers", 165 "//pw_interrupt:context", 166 "//pw_sync:timed_mutex_facade", 167 ], 168) 169 170pw_cc_library( 171 name = "interrupt_spin_lock_headers", 172 hdrs = [ 173 "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", 177 ], 178 includes = [ 179 "public", 180 "public_overrides", 181 ], 182 target_compatible_with = [ 183 "//pw_build/constraints/rtos:embos", 184 ], 185 # TODO(b/234876414): This should depend on embOS but our third parties 186 # currently do not have Bazel support. 187) 188 189pw_cc_library( 190 name = "interrupt_spin_lock", 191 srcs = [ 192 "interrupt_spin_lock.cc", 193 ], 194 target_compatible_with = [ 195 "//pw_build/constraints/rtos:embos", 196 ], 197 deps = [ 198 ":interrupt_spin_lock_headers", 199 "//pw_sync:interrupt_spin_lock_facade", 200 ], 201) 202