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_freertos/binary_semaphore_inline.h", 28 "public/pw_sync_freertos/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 FreeRTOS but our third parties currently 38 # do not have Bazel support. 39 "//pw_chrono:system_clock", 40 "//pw_chrono_freertos:system_clock_headers", 41 ], 42) 43 44pw_cc_library( 45 name = "binary_semaphore", 46 srcs = [ 47 "binary_semaphore.cc", 48 ], 49 deps = [ 50 ":binary_semaphore_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_freertos/counting_semaphore_inline.h", 60 "public/pw_sync_freertos/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 FreeRTOS but our third parties currently 70 # do not have Bazel support. 71 "//pw_chrono:system_clock", 72 "//pw_chrono_freertos:system_clock_headers", 73 ], 74) 75 76pw_cc_library( 77 name = "counting_semaphore", 78 srcs = [ 79 "counting_semaphore.cc", 80 ], 81 deps = [ 82 ":counting_semaphore_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_freertos/mutex_inline.h", 92 "public/pw_sync_freertos/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 FreeRTOS 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_freertos/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 FreeRTOS but our third parties currently 127 # do not have Bazel support. 128 "//pw_chrono:system_clock", 129 "//pw_chrono_freertos:system_clock_headers", 130 "//pw_sync:timed_mutex_facade", 131 ], 132) 133 134pw_cc_library( 135 name = "timed_mutex", 136 srcs = [ 137 "timed_mutex.cc", 138 ], 139 deps = [ 140 ":timed_mutex_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_freertos/interrupt_spin_lock_inline.h", 150 "public/pw_sync_freertos/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 FreeRTOS 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_interrupt:context", 170 "//pw_sync:interrupt_spin_lock_facade", 171 ], 172) 173