1# Copyright 2023 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_binary", 18) 19 20package(default_visibility = ["//visibility:public"]) 21 22licenses(["notice"]) 23 24pw_cc_binary( 25 name = "base", 26 srcs = ["base.cc"], 27 defines = ["PW_ALLOCATOR_SIZE_REPORTER_BASE"], 28 deps = ["//pw_allocator:size_reporter"], 29) 30 31pw_cc_binary( 32 name = "as_pmr_allocator_base", 33 srcs = ["as_pmr_allocator_base.cc"], 34 deps = [ 35 "//pw_allocator:block_allocator", 36 "//pw_allocator:size_reporter", 37 ], 38) 39 40pw_cc_binary( 41 name = "as_pmr_allocator", 42 srcs = ["as_pmr_allocator.cc"], 43 deps = [ 44 "//pw_allocator:allocator", 45 "//pw_allocator:block_allocator", 46 "//pw_allocator:size_reporter", 47 ], 48) 49 50pw_cc_binary( 51 name = "best_fit_block_allocator", 52 srcs = ["best_fit_block_allocator.cc"], 53 deps = [ 54 "//pw_allocator:block_allocator", 55 "//pw_allocator:size_reporter", 56 ], 57) 58 59pw_cc_binary( 60 name = "bucket_block_allocator", 61 srcs = ["bucket_block_allocator.cc"], 62 deps = [ 63 "//pw_allocator:bucket_block_allocator", 64 "//pw_allocator:size_reporter", 65 ], 66) 67 68pw_cc_binary( 69 name = "buddy_allocator", 70 srcs = ["buddy_allocator.cc"], 71 deps = [ 72 "//pw_allocator:buddy_allocator", 73 "//pw_allocator:size_reporter", 74 ], 75) 76 77pw_cc_binary( 78 name = "bump_allocator", 79 srcs = ["bump_allocator.cc"], 80 deps = [ 81 "//pw_allocator:bump_allocator", 82 "//pw_allocator:size_reporter", 83 ], 84) 85 86pw_cc_binary( 87 name = "dual_first_fit_block_allocator", 88 srcs = ["dual_first_fit_block_allocator.cc"], 89 deps = [ 90 "//pw_allocator:block_allocator", 91 "//pw_allocator:size_reporter", 92 ], 93) 94 95pw_cc_binary( 96 name = "fallback_allocator_base", 97 srcs = ["fallback_allocator_base.cc"], 98 deps = [ 99 "//pw_allocator:block_allocator", 100 "//pw_allocator:size_reporter", 101 ], 102) 103 104pw_cc_binary( 105 name = "fallback_allocator", 106 srcs = ["fallback_allocator.cc"], 107 deps = [ 108 "//pw_allocator:block_allocator", 109 "//pw_allocator:fallback_allocator", 110 "//pw_allocator:size_reporter", 111 ], 112) 113 114pw_cc_binary( 115 name = "first_fit_block_allocator", 116 srcs = ["first_fit_block_allocator.cc"], 117 deps = [ 118 "//pw_allocator:block_allocator", 119 "//pw_allocator:size_reporter", 120 ], 121) 122 123pw_cc_binary( 124 name = "last_fit_block_allocator", 125 srcs = ["last_fit_block_allocator.cc"], 126 deps = [ 127 "//pw_allocator:block_allocator", 128 "//pw_allocator:size_reporter", 129 ], 130) 131 132pw_cc_binary( 133 name = "libc_allocator", 134 srcs = ["libc_allocator.cc"], 135 deps = [ 136 "//pw_allocator:libc_allocator", 137 "//pw_allocator:size_reporter", 138 ], 139) 140 141pw_cc_binary( 142 name = "null_allocator", 143 srcs = ["null_allocator.cc"], 144 deps = [ 145 "//pw_allocator:null_allocator", 146 "//pw_allocator:size_reporter", 147 ], 148) 149 150pw_cc_binary( 151 name = "synchronized_allocator_isl", 152 srcs = ["synchronized_allocator_isl.cc"], 153 deps = [ 154 "//pw_allocator:block_allocator", 155 "//pw_allocator:size_reporter", 156 "//pw_allocator:synchronized_allocator", 157 "//pw_sync:interrupt_spin_lock", 158 ], 159) 160 161pw_cc_binary( 162 name = "synchronized_allocator_mutex", 163 srcs = ["synchronized_allocator_mutex.cc"], 164 deps = [ 165 "//pw_allocator:block_allocator", 166 "//pw_allocator:size_reporter", 167 "//pw_allocator:synchronized_allocator", 168 "//pw_sync:mutex", 169 ], 170) 171 172pw_cc_binary( 173 name = "tracking_allocator_all_metrics", 174 srcs = ["tracking_allocator_all_metrics.cc"], 175 deps = [ 176 "//pw_allocator:block_allocator", 177 "//pw_allocator:size_reporter", 178 "//pw_allocator:tracking_allocator", 179 ], 180) 181 182pw_cc_binary( 183 name = "tracking_allocator_no_metrics", 184 srcs = ["tracking_allocator_no_metrics.cc"], 185 deps = [ 186 "//pw_allocator:block_allocator", 187 "//pw_allocator:size_reporter", 188 "//pw_allocator:tracking_allocator", 189 ], 190) 191 192pw_cc_binary( 193 name = "worst_fit_block_allocator", 194 srcs = ["worst_fit_block_allocator.cc"], 195 deps = [ 196 "//pw_allocator:block_allocator", 197 "//pw_allocator:size_reporter", 198 ], 199) 200