1*61c4878aSAndroid Build Coastguard Worker# Copyright 2023 The Pigweed Authors 2*61c4878aSAndroid Build Coastguard Worker# 3*61c4878aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); you may not 4*61c4878aSAndroid Build Coastguard Worker# use this file except in compliance with the License. You may obtain a copy of 5*61c4878aSAndroid Build Coastguard Worker# the License at 6*61c4878aSAndroid Build Coastguard Worker# 7*61c4878aSAndroid Build Coastguard Worker# https://www.apache.org/licenses/LICENSE-2.0 8*61c4878aSAndroid Build Coastguard Worker# 9*61c4878aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*61c4878aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11*61c4878aSAndroid Build Coastguard Worker# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12*61c4878aSAndroid Build Coastguard Worker# License for the specific language governing permissions and limitations under 13*61c4878aSAndroid Build Coastguard Worker# the License. 14*61c4878aSAndroid Build Coastguard Worker 15*61c4878aSAndroid Build Coastguard Workerimport("//build_overrides/pigweed.gni") 16*61c4878aSAndroid Build Coastguard Worker 17*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_bloat/bloat.gni") 18*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_build/module_config.gni") 19*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_build/target_types.gni") 20*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_docgen/docs.gni") 21*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_fuzzer/fuzz_test.gni") 22*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_sync/backend.gni") 23*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_thread/backend.gni") 24*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_unit_test/test.gni") 25*61c4878aSAndroid Build Coastguard Worker 26*61c4878aSAndroid Build Coastguard Workergroup("pw_allocator") { 27*61c4878aSAndroid Build Coastguard Worker public_deps = [ ":allocator" ] 28*61c4878aSAndroid Build Coastguard Worker} 29*61c4878aSAndroid Build Coastguard Worker 30*61c4878aSAndroid Build Coastguard Worker# Module configuration 31*61c4878aSAndroid Build Coastguard Worker 32*61c4878aSAndroid Build Coastguard Workerdeclare_args() { 33*61c4878aSAndroid Build Coastguard Worker # The build target that overrides the default configuration options for this 34*61c4878aSAndroid Build Coastguard Worker # module. This should point to a source set that provides defines through a 35*61c4878aSAndroid Build Coastguard Worker # public config (which may -include a file or add defines directly). 36*61c4878aSAndroid Build Coastguard Worker pw_allocator_CONFIG = pw_build_DEFAULT_MODULE_CONFIG 37*61c4878aSAndroid Build Coastguard Worker} 38*61c4878aSAndroid Build Coastguard Worker 39*61c4878aSAndroid Build Coastguard Workerconfig("public_include_path") { 40*61c4878aSAndroid Build Coastguard Worker include_dirs = [ "public" ] 41*61c4878aSAndroid Build Coastguard Worker visibility = [ ":*" ] 42*61c4878aSAndroid Build Coastguard Worker} 43*61c4878aSAndroid Build Coastguard Worker 44*61c4878aSAndroid Build Coastguard Workerpw_source_set("config") { 45*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/config.h" ] 46*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 47*61c4878aSAndroid Build Coastguard Worker public_deps = [ pw_allocator_CONFIG ] 48*61c4878aSAndroid Build Coastguard Worker} 49*61c4878aSAndroid Build Coastguard Worker 50*61c4878aSAndroid Build Coastguard Workerconfig("test_config") { 51*61c4878aSAndroid Build Coastguard Worker defines = [ 52*61c4878aSAndroid Build Coastguard Worker "PW_ALLOCATOR_STRICT_VALIDATION=1", 53*61c4878aSAndroid Build Coastguard Worker "PW_ALLOCATOR_BLOCK_POISON_INTERVAL=4", 54*61c4878aSAndroid Build Coastguard Worker ] 55*61c4878aSAndroid Build Coastguard Worker} 56*61c4878aSAndroid Build Coastguard Worker 57*61c4878aSAndroid Build Coastguard Worker# Libraries 58*61c4878aSAndroid Build Coastguard Worker 59*61c4878aSAndroid Build Coastguard Workerpw_source_set("allocator") { 60*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 61*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/allocator.h" ] 62*61c4878aSAndroid Build Coastguard Worker public_deps = [ 63*61c4878aSAndroid Build Coastguard Worker ":deallocator", 64*61c4878aSAndroid Build Coastguard Worker dir_pw_result, 65*61c4878aSAndroid Build Coastguard Worker ] 66*61c4878aSAndroid Build Coastguard Worker sources = [ "allocator.cc" ] 67*61c4878aSAndroid Build Coastguard Worker} 68*61c4878aSAndroid Build Coastguard Worker 69*61c4878aSAndroid Build Coastguard Workerpw_source_set("allocator_as_pool") { 70*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 71*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/allocator_as_pool.h" ] 72*61c4878aSAndroid Build Coastguard Worker public_deps = [ 73*61c4878aSAndroid Build Coastguard Worker ":allocator", 74*61c4878aSAndroid Build Coastguard Worker ":pool", 75*61c4878aSAndroid Build Coastguard Worker dir_pw_status, 76*61c4878aSAndroid Build Coastguard Worker ] 77*61c4878aSAndroid Build Coastguard Worker sources = [ "allocator_as_pool.cc" ] 78*61c4878aSAndroid Build Coastguard Worker} 79*61c4878aSAndroid Build Coastguard Worker 80*61c4878aSAndroid Build Coastguard Workerpw_source_set("best_fit") { 81*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 82*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/best_fit.h" ] 83*61c4878aSAndroid Build Coastguard Worker public_deps = [ 84*61c4878aSAndroid Build Coastguard Worker ":block_allocator", 85*61c4878aSAndroid Build Coastguard Worker ":config", 86*61c4878aSAndroid Build Coastguard Worker "block:detailed_block", 87*61c4878aSAndroid Build Coastguard Worker "bucket:fast_sorted", 88*61c4878aSAndroid Build Coastguard Worker "bucket:sorted", 89*61c4878aSAndroid Build Coastguard Worker ] 90*61c4878aSAndroid Build Coastguard Worker} 91*61c4878aSAndroid Build Coastguard Worker 92*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated interfaces. 93*61c4878aSAndroid Build Coastguard Workerpw_source_set("best_fit_block_allocator") { 94*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 95*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/best_fit_block_allocator.h" ] 96*61c4878aSAndroid Build Coastguard Worker public_deps = [ ":best_fit" ] 97*61c4878aSAndroid Build Coastguard Worker} 98*61c4878aSAndroid Build Coastguard Worker 99*61c4878aSAndroid Build Coastguard Workerpw_source_set("block_allocator") { 100*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 101*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/block_allocator.h" ] 102*61c4878aSAndroid Build Coastguard Worker public_deps = [ 103*61c4878aSAndroid Build Coastguard Worker ":allocator", 104*61c4878aSAndroid Build Coastguard Worker ":fragmentation", 105*61c4878aSAndroid Build Coastguard Worker "block:allocatable", 106*61c4878aSAndroid Build Coastguard Worker "block:basic", 107*61c4878aSAndroid Build Coastguard Worker "block:iterable", 108*61c4878aSAndroid Build Coastguard Worker "block:poisonable", 109*61c4878aSAndroid Build Coastguard Worker "block:with_layout", 110*61c4878aSAndroid Build Coastguard Worker dir_pw_bytes, 111*61c4878aSAndroid Build Coastguard Worker dir_pw_result, 112*61c4878aSAndroid Build Coastguard Worker dir_pw_status, 113*61c4878aSAndroid Build Coastguard Worker ] 114*61c4878aSAndroid Build Coastguard Worker deps = [ dir_pw_assert ] 115*61c4878aSAndroid Build Coastguard Worker sources = [ "block_allocator.cc" ] 116*61c4878aSAndroid Build Coastguard Worker} 117*61c4878aSAndroid Build Coastguard Worker 118*61c4878aSAndroid Build Coastguard Workerpw_source_set("bucket_allocator") { 119*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 120*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/bucket_allocator.h" ] 121*61c4878aSAndroid Build Coastguard Worker public_deps = [ 122*61c4878aSAndroid Build Coastguard Worker ":block_allocator", 123*61c4878aSAndroid Build Coastguard Worker "block:detailed_block", 124*61c4878aSAndroid Build Coastguard Worker "bucket:unordered", 125*61c4878aSAndroid Build Coastguard Worker dir_pw_status, 126*61c4878aSAndroid Build Coastguard Worker ] 127*61c4878aSAndroid Build Coastguard Worker} 128*61c4878aSAndroid Build Coastguard Worker 129*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated interfaces. 130*61c4878aSAndroid Build Coastguard Workerpw_source_set("bucket_block_allocator") { 131*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 132*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/bucket_block_allocator.h" ] 133*61c4878aSAndroid Build Coastguard Worker public_deps = [ ":bucket_allocator" ] 134*61c4878aSAndroid Build Coastguard Worker} 135*61c4878aSAndroid Build Coastguard Worker 136*61c4878aSAndroid Build Coastguard Workerpw_source_set("buddy_allocator") { 137*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 138*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/buddy_allocator.h" ] 139*61c4878aSAndroid Build Coastguard Worker public_deps = [ 140*61c4878aSAndroid Build Coastguard Worker ":allocator", 141*61c4878aSAndroid Build Coastguard Worker "$dir_pw_containers:vector", 142*61c4878aSAndroid Build Coastguard Worker "block:basic", 143*61c4878aSAndroid Build Coastguard Worker "bucket:unordered", 144*61c4878aSAndroid Build Coastguard Worker dir_pw_bytes, 145*61c4878aSAndroid Build Coastguard Worker dir_pw_status, 146*61c4878aSAndroid Build Coastguard Worker ] 147*61c4878aSAndroid Build Coastguard Worker deps = [ 148*61c4878aSAndroid Build Coastguard Worker "$dir_pw_bytes:alignment", 149*61c4878aSAndroid Build Coastguard Worker "$dir_pw_third_party/fuchsia:stdcompat", 150*61c4878aSAndroid Build Coastguard Worker dir_pw_assert, 151*61c4878aSAndroid Build Coastguard Worker ] 152*61c4878aSAndroid Build Coastguard Worker sources = [ "buddy_allocator.cc" ] 153*61c4878aSAndroid Build Coastguard Worker} 154*61c4878aSAndroid Build Coastguard Worker 155*61c4878aSAndroid Build Coastguard Workerpw_source_set("buffer") { 156*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 157*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/buffer.h" ] 158*61c4878aSAndroid Build Coastguard Worker public_deps = [ 159*61c4878aSAndroid Build Coastguard Worker dir_pw_bytes, 160*61c4878aSAndroid Build Coastguard Worker dir_pw_result, 161*61c4878aSAndroid Build Coastguard Worker ] 162*61c4878aSAndroid Build Coastguard Worker deps = [ 163*61c4878aSAndroid Build Coastguard Worker "$dir_pw_bytes:alignment", 164*61c4878aSAndroid Build Coastguard Worker dir_pw_assert, 165*61c4878aSAndroid Build Coastguard Worker ] 166*61c4878aSAndroid Build Coastguard Worker} 167*61c4878aSAndroid Build Coastguard Worker 168*61c4878aSAndroid Build Coastguard Workerpw_source_set("bump_allocator") { 169*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 170*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/bump_allocator.h" ] 171*61c4878aSAndroid Build Coastguard Worker public_deps = [ 172*61c4878aSAndroid Build Coastguard Worker ":allocator", 173*61c4878aSAndroid Build Coastguard Worker "$dir_pw_bytes:alignment", 174*61c4878aSAndroid Build Coastguard Worker dir_pw_bytes, 175*61c4878aSAndroid Build Coastguard Worker ] 176*61c4878aSAndroid Build Coastguard Worker deps = [ ":buffer" ] 177*61c4878aSAndroid Build Coastguard Worker sources = [ "bump_allocator.cc" ] 178*61c4878aSAndroid Build Coastguard Worker} 179*61c4878aSAndroid Build Coastguard Worker 180*61c4878aSAndroid Build Coastguard Workerpw_source_set("chunk_pool") { 181*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 182*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/chunk_pool.h" ] 183*61c4878aSAndroid Build Coastguard Worker public_deps = [ 184*61c4878aSAndroid Build Coastguard Worker ":pool", 185*61c4878aSAndroid Build Coastguard Worker dir_pw_bytes, 186*61c4878aSAndroid Build Coastguard Worker dir_pw_result, 187*61c4878aSAndroid Build Coastguard Worker ] 188*61c4878aSAndroid Build Coastguard Worker deps = [ 189*61c4878aSAndroid Build Coastguard Worker ":buffer", 190*61c4878aSAndroid Build Coastguard Worker "$dir_pw_assert:check", 191*61c4878aSAndroid Build Coastguard Worker "$dir_pw_bytes:alignment", 192*61c4878aSAndroid Build Coastguard Worker "$dir_pw_third_party/fuchsia:stdcompat", 193*61c4878aSAndroid Build Coastguard Worker ] 194*61c4878aSAndroid Build Coastguard Worker sources = [ "chunk_pool.cc" ] 195*61c4878aSAndroid Build Coastguard Worker} 196*61c4878aSAndroid Build Coastguard Worker 197*61c4878aSAndroid Build Coastguard Workerpw_source_set("deallocator") { 198*61c4878aSAndroid Build Coastguard Worker sources = [ "unique_ptr.cc" ] 199*61c4878aSAndroid Build Coastguard Worker public = [ 200*61c4878aSAndroid Build Coastguard Worker "public/pw_allocator/capability.h", 201*61c4878aSAndroid Build Coastguard Worker "public/pw_allocator/deallocator.h", 202*61c4878aSAndroid Build Coastguard Worker "public/pw_allocator/layout.h", 203*61c4878aSAndroid Build Coastguard Worker "public/pw_allocator/unique_ptr.h", 204*61c4878aSAndroid Build Coastguard Worker ] 205*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 206*61c4878aSAndroid Build Coastguard Worker public_deps = [ 207*61c4878aSAndroid Build Coastguard Worker dir_pw_assert, 208*61c4878aSAndroid Build Coastguard Worker dir_pw_preprocessor, 209*61c4878aSAndroid Build Coastguard Worker dir_pw_result, 210*61c4878aSAndroid Build Coastguard Worker dir_pw_status, 211*61c4878aSAndroid Build Coastguard Worker ] 212*61c4878aSAndroid Build Coastguard Worker} 213*61c4878aSAndroid Build Coastguard Worker 214*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated interfaces. 215*61c4878aSAndroid Build Coastguard Workerpw_source_set("dual_first_fit_block_allocator") { 216*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 217*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/dual_first_fit_block_allocator.h" ] 218*61c4878aSAndroid Build Coastguard Worker public_deps = [ ":first_fit" ] 219*61c4878aSAndroid Build Coastguard Worker} 220*61c4878aSAndroid Build Coastguard Worker 221*61c4878aSAndroid Build Coastguard Workerpw_source_set("fallback_allocator") { 222*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 223*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/fallback_allocator.h" ] 224*61c4878aSAndroid Build Coastguard Worker public_deps = [ 225*61c4878aSAndroid Build Coastguard Worker ":allocator", 226*61c4878aSAndroid Build Coastguard Worker ":deallocator", 227*61c4878aSAndroid Build Coastguard Worker dir_pw_result, 228*61c4878aSAndroid Build Coastguard Worker dir_pw_status, 229*61c4878aSAndroid Build Coastguard Worker ] 230*61c4878aSAndroid Build Coastguard Worker sources = [ "fallback_allocator.cc" ] 231*61c4878aSAndroid Build Coastguard Worker deps = [ "$dir_pw_assert:check" ] 232*61c4878aSAndroid Build Coastguard Worker} 233*61c4878aSAndroid Build Coastguard Worker 234*61c4878aSAndroid Build Coastguard Workerpw_source_set("first_fit") { 235*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 236*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/first_fit.h" ] 237*61c4878aSAndroid Build Coastguard Worker public_deps = [ 238*61c4878aSAndroid Build Coastguard Worker ":block_allocator", 239*61c4878aSAndroid Build Coastguard Worker ":config", 240*61c4878aSAndroid Build Coastguard Worker "block:detailed_block", 241*61c4878aSAndroid Build Coastguard Worker "bucket:sequenced", 242*61c4878aSAndroid Build Coastguard Worker ] 243*61c4878aSAndroid Build Coastguard Worker} 244*61c4878aSAndroid Build Coastguard Worker 245*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated interfaces. 246*61c4878aSAndroid Build Coastguard Workerpw_source_set("first_fit_block_allocator") { 247*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 248*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/first_fit_block_allocator.h" ] 249*61c4878aSAndroid Build Coastguard Worker public_deps = [ ":first_fit" ] 250*61c4878aSAndroid Build Coastguard Worker} 251*61c4878aSAndroid Build Coastguard Worker 252*61c4878aSAndroid Build Coastguard Workerpw_source_set("fragmentation") { 253*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 254*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/fragmentation.h" ] 255*61c4878aSAndroid Build Coastguard Worker sources = [ "fragmentation.cc" ] 256*61c4878aSAndroid Build Coastguard Worker} 257*61c4878aSAndroid Build Coastguard Worker 258*61c4878aSAndroid Build Coastguard Workerpw_source_set("freelist_heap") { 259*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 260*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/freelist_heap.h" ] 261*61c4878aSAndroid Build Coastguard Worker public_deps = [ 262*61c4878aSAndroid Build Coastguard Worker ":bucket_allocator", 263*61c4878aSAndroid Build Coastguard Worker dir_pw_assert, 264*61c4878aSAndroid Build Coastguard Worker dir_pw_bytes, 265*61c4878aSAndroid Build Coastguard Worker dir_pw_preprocessor, 266*61c4878aSAndroid Build Coastguard Worker ] 267*61c4878aSAndroid Build Coastguard Worker} 268*61c4878aSAndroid Build Coastguard Worker 269*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated interfaces. 270*61c4878aSAndroid Build Coastguard Workerpw_source_set("last_fit_block_allocator") { 271*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 272*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/last_fit_block_allocator.h" ] 273*61c4878aSAndroid Build Coastguard Worker public_deps = [ ":first_fit" ] 274*61c4878aSAndroid Build Coastguard Worker} 275*61c4878aSAndroid Build Coastguard Worker 276*61c4878aSAndroid Build Coastguard Workerpw_source_set("libc_allocator") { 277*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 278*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/libc_allocator.h" ] 279*61c4878aSAndroid Build Coastguard Worker public_deps = [ ":allocator" ] 280*61c4878aSAndroid Build Coastguard Worker sources = [ "libc_allocator.cc" ] 281*61c4878aSAndroid Build Coastguard Worker} 282*61c4878aSAndroid Build Coastguard Worker 283*61c4878aSAndroid Build Coastguard Workerpw_source_set("null_allocator") { 284*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 285*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/null_allocator.h" ] 286*61c4878aSAndroid Build Coastguard Worker public_deps = [ ":allocator" ] 287*61c4878aSAndroid Build Coastguard Worker sources = [ "null_allocator.cc" ] 288*61c4878aSAndroid Build Coastguard Worker} 289*61c4878aSAndroid Build Coastguard Worker 290*61c4878aSAndroid Build Coastguard Workerpw_source_set("pmr_allocator") { 291*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 292*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/pmr_allocator.h" ] 293*61c4878aSAndroid Build Coastguard Worker public_deps = [ 294*61c4878aSAndroid Build Coastguard Worker ":allocator", 295*61c4878aSAndroid Build Coastguard Worker ":config", 296*61c4878aSAndroid Build Coastguard Worker ] 297*61c4878aSAndroid Build Coastguard Worker sources = [ "pmr_allocator.cc" ] 298*61c4878aSAndroid Build Coastguard Worker} 299*61c4878aSAndroid Build Coastguard Worker 300*61c4878aSAndroid Build Coastguard Workerpw_source_set("pool") { 301*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 302*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/pool.h" ] 303*61c4878aSAndroid Build Coastguard Worker public_deps = [ 304*61c4878aSAndroid Build Coastguard Worker ":deallocator", 305*61c4878aSAndroid Build Coastguard Worker dir_pw_bytes, 306*61c4878aSAndroid Build Coastguard Worker dir_pw_result, 307*61c4878aSAndroid Build Coastguard Worker ] 308*61c4878aSAndroid Build Coastguard Worker} 309*61c4878aSAndroid Build Coastguard Worker 310*61c4878aSAndroid Build Coastguard Workerpw_source_set("synchronized_allocator") { 311*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 312*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/synchronized_allocator.h" ] 313*61c4878aSAndroid Build Coastguard Worker public_deps = [ 314*61c4878aSAndroid Build Coastguard Worker ":allocator", 315*61c4878aSAndroid Build Coastguard Worker "$dir_pw_sync:borrow", 316*61c4878aSAndroid Build Coastguard Worker ] 317*61c4878aSAndroid Build Coastguard Worker} 318*61c4878aSAndroid Build Coastguard Worker 319*61c4878aSAndroid Build Coastguard Workerpw_source_set("tracking_allocator") { 320*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 321*61c4878aSAndroid Build Coastguard Worker public = [ 322*61c4878aSAndroid Build Coastguard Worker "public/pw_allocator/metrics.h", 323*61c4878aSAndroid Build Coastguard Worker "public/pw_allocator/tracking_allocator.h", 324*61c4878aSAndroid Build Coastguard Worker ] 325*61c4878aSAndroid Build Coastguard Worker public_deps = [ 326*61c4878aSAndroid Build Coastguard Worker ":allocator", 327*61c4878aSAndroid Build Coastguard Worker dir_pw_metric, 328*61c4878aSAndroid Build Coastguard Worker dir_pw_status, 329*61c4878aSAndroid Build Coastguard Worker ] 330*61c4878aSAndroid Build Coastguard Worker deps = [ dir_pw_assert ] 331*61c4878aSAndroid Build Coastguard Worker} 332*61c4878aSAndroid Build Coastguard Worker 333*61c4878aSAndroid Build Coastguard Workerpw_source_set("typed_pool") { 334*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 335*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/typed_pool.h" ] 336*61c4878aSAndroid Build Coastguard Worker public_deps = [ 337*61c4878aSAndroid Build Coastguard Worker ":allocator", 338*61c4878aSAndroid Build Coastguard Worker ":chunk_pool", 339*61c4878aSAndroid Build Coastguard Worker dir_pw_bytes, 340*61c4878aSAndroid Build Coastguard Worker dir_pw_result, 341*61c4878aSAndroid Build Coastguard Worker ] 342*61c4878aSAndroid Build Coastguard Worker} 343*61c4878aSAndroid Build Coastguard Worker 344*61c4878aSAndroid Build Coastguard Workerpw_source_set("worst_fit") { 345*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 346*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/worst_fit.h" ] 347*61c4878aSAndroid Build Coastguard Worker public_deps = [ 348*61c4878aSAndroid Build Coastguard Worker ":block_allocator", 349*61c4878aSAndroid Build Coastguard Worker ":config", 350*61c4878aSAndroid Build Coastguard Worker "block:detailed_block", 351*61c4878aSAndroid Build Coastguard Worker "bucket:fast_sorted", 352*61c4878aSAndroid Build Coastguard Worker "bucket:sorted", 353*61c4878aSAndroid Build Coastguard Worker ] 354*61c4878aSAndroid Build Coastguard Worker} 355*61c4878aSAndroid Build Coastguard Worker 356*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated interfaces. 357*61c4878aSAndroid Build Coastguard Workerpw_source_set("worst_fit_block_allocator") { 358*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 359*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/worst_fit_block_allocator.h" ] 360*61c4878aSAndroid Build Coastguard Worker public_deps = [ ":worst_fit" ] 361*61c4878aSAndroid Build Coastguard Worker} 362*61c4878aSAndroid Build Coastguard Worker 363*61c4878aSAndroid Build Coastguard Worker# Test support 364*61c4878aSAndroid Build Coastguard Worker 365*61c4878aSAndroid Build Coastguard Workerpw_source_set("testing") { 366*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":test_config" ] 367*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/testing.h" ] 368*61c4878aSAndroid Build Coastguard Worker public_deps = [ 369*61c4878aSAndroid Build Coastguard Worker ":allocator", 370*61c4878aSAndroid Build Coastguard Worker ":buffer", 371*61c4878aSAndroid Build Coastguard Worker ":first_fit", 372*61c4878aSAndroid Build Coastguard Worker ":tracking_allocator", 373*61c4878aSAndroid Build Coastguard Worker "$dir_pw_sync:interrupt_spin_lock", 374*61c4878aSAndroid Build Coastguard Worker dir_pw_bytes, 375*61c4878aSAndroid Build Coastguard Worker dir_pw_result, 376*61c4878aSAndroid Build Coastguard Worker dir_pw_status, 377*61c4878aSAndroid Build Coastguard Worker dir_pw_unit_test, 378*61c4878aSAndroid Build Coastguard Worker ] 379*61c4878aSAndroid Build Coastguard Worker deps = [ dir_pw_assert ] 380*61c4878aSAndroid Build Coastguard Worker} 381*61c4878aSAndroid Build Coastguard Worker 382*61c4878aSAndroid Build Coastguard Workerpw_source_set("block_allocator_testing") { 383*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/block_allocator_testing.h" ] 384*61c4878aSAndroid Build Coastguard Worker public_deps = [ 385*61c4878aSAndroid Build Coastguard Worker ":block_allocator", 386*61c4878aSAndroid Build Coastguard Worker "block:testing", 387*61c4878aSAndroid Build Coastguard Worker dir_pw_unit_test, 388*61c4878aSAndroid Build Coastguard Worker ] 389*61c4878aSAndroid Build Coastguard Worker deps = [ 390*61c4878aSAndroid Build Coastguard Worker "$dir_pw_bytes:alignment", 391*61c4878aSAndroid Build Coastguard Worker "$dir_pw_third_party/fuchsia:stdcompat", 392*61c4878aSAndroid Build Coastguard Worker "block:detailed_block", 393*61c4878aSAndroid Build Coastguard Worker dir_pw_assert, 394*61c4878aSAndroid Build Coastguard Worker dir_pw_status, 395*61c4878aSAndroid Build Coastguard Worker ] 396*61c4878aSAndroid Build Coastguard Worker sources = [ "block_allocator_testing.cc" ] 397*61c4878aSAndroid Build Coastguard Worker} 398*61c4878aSAndroid Build Coastguard Worker 399*61c4878aSAndroid Build Coastguard Workerpw_source_set("test_harness") { 400*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/test_harness.h" ] 401*61c4878aSAndroid Build Coastguard Worker public_deps = [ 402*61c4878aSAndroid Build Coastguard Worker ":allocator", 403*61c4878aSAndroid Build Coastguard Worker dir_pw_containers, 404*61c4878aSAndroid Build Coastguard Worker dir_pw_random, 405*61c4878aSAndroid Build Coastguard Worker ] 406*61c4878aSAndroid Build Coastguard Worker deps = [ 407*61c4878aSAndroid Build Coastguard Worker "$dir_pw_third_party/fuchsia:stdcompat", 408*61c4878aSAndroid Build Coastguard Worker dir_pw_assert, 409*61c4878aSAndroid Build Coastguard Worker ] 410*61c4878aSAndroid Build Coastguard Worker sources = [ "test_harness.cc" ] 411*61c4878aSAndroid Build Coastguard Worker} 412*61c4878aSAndroid Build Coastguard Worker 413*61c4878aSAndroid Build Coastguard Workerpw_source_set("fuzzing") { 414*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/fuzzing.h" ] 415*61c4878aSAndroid Build Coastguard Worker public_deps = [ 416*61c4878aSAndroid Build Coastguard Worker ":test_harness", 417*61c4878aSAndroid Build Coastguard Worker "$dir_pw_fuzzer:fuzztest", 418*61c4878aSAndroid Build Coastguard Worker ] 419*61c4878aSAndroid Build Coastguard Worker sources = [ "fuzzing.cc" ] 420*61c4878aSAndroid Build Coastguard Worker} 421*61c4878aSAndroid Build Coastguard Worker 422*61c4878aSAndroid Build Coastguard Worker# Tests 423*61c4878aSAndroid Build Coastguard Worker 424*61c4878aSAndroid Build Coastguard Workerpw_test("allocator_as_pool_test") { 425*61c4878aSAndroid Build Coastguard Worker deps = [ 426*61c4878aSAndroid Build Coastguard Worker ":allocator_as_pool", 427*61c4878aSAndroid Build Coastguard Worker ":testing", 428*61c4878aSAndroid Build Coastguard Worker ] 429*61c4878aSAndroid Build Coastguard Worker sources = [ "allocator_as_pool_test.cc" ] 430*61c4878aSAndroid Build Coastguard Worker} 431*61c4878aSAndroid Build Coastguard Worker 432*61c4878aSAndroid Build Coastguard Workerpw_test("allocator_test") { 433*61c4878aSAndroid Build Coastguard Worker deps = [ 434*61c4878aSAndroid Build Coastguard Worker ":allocator", 435*61c4878aSAndroid Build Coastguard Worker ":testing", 436*61c4878aSAndroid Build Coastguard Worker ] 437*61c4878aSAndroid Build Coastguard Worker sources = [ "allocator_test.cc" ] 438*61c4878aSAndroid Build Coastguard Worker} 439*61c4878aSAndroid Build Coastguard Worker 440*61c4878aSAndroid Build Coastguard Workerpw_test("best_fit_test") { 441*61c4878aSAndroid Build Coastguard Worker deps = [ 442*61c4878aSAndroid Build Coastguard Worker ":best_fit", 443*61c4878aSAndroid Build Coastguard Worker ":best_fit_block_allocator", 444*61c4878aSAndroid Build Coastguard Worker ":block_allocator_testing", 445*61c4878aSAndroid Build Coastguard Worker ] 446*61c4878aSAndroid Build Coastguard Worker sources = [ "best_fit_test.cc" ] 447*61c4878aSAndroid Build Coastguard Worker} 448*61c4878aSAndroid Build Coastguard Worker 449*61c4878aSAndroid Build Coastguard Workerpw_test("bucket_allocator_test") { 450*61c4878aSAndroid Build Coastguard Worker deps = [ 451*61c4878aSAndroid Build Coastguard Worker ":block_allocator_testing", 452*61c4878aSAndroid Build Coastguard Worker ":bucket_allocator", 453*61c4878aSAndroid Build Coastguard Worker ":bucket_block_allocator", 454*61c4878aSAndroid Build Coastguard Worker ] 455*61c4878aSAndroid Build Coastguard Worker sources = [ "bucket_allocator_test.cc" ] 456*61c4878aSAndroid Build Coastguard Worker} 457*61c4878aSAndroid Build Coastguard Worker 458*61c4878aSAndroid Build Coastguard Workerpw_test("buddy_allocator_test") { 459*61c4878aSAndroid Build Coastguard Worker deps = [ 460*61c4878aSAndroid Build Coastguard Worker ":buddy_allocator", 461*61c4878aSAndroid Build Coastguard Worker ":testing", 462*61c4878aSAndroid Build Coastguard Worker ] 463*61c4878aSAndroid Build Coastguard Worker sources = [ "buddy_allocator_test.cc" ] 464*61c4878aSAndroid Build Coastguard Worker} 465*61c4878aSAndroid Build Coastguard Worker 466*61c4878aSAndroid Build Coastguard Workerpw_test("buffer_test") { 467*61c4878aSAndroid Build Coastguard Worker deps = [ 468*61c4878aSAndroid Build Coastguard Worker ":buffer", 469*61c4878aSAndroid Build Coastguard Worker ":testing", 470*61c4878aSAndroid Build Coastguard Worker "$dir_pw_third_party/fuchsia:stdcompat", 471*61c4878aSAndroid Build Coastguard Worker dir_pw_bytes, 472*61c4878aSAndroid Build Coastguard Worker dir_pw_result, 473*61c4878aSAndroid Build Coastguard Worker ] 474*61c4878aSAndroid Build Coastguard Worker sources = [ "buffer_test.cc" ] 475*61c4878aSAndroid Build Coastguard Worker} 476*61c4878aSAndroid Build Coastguard Worker 477*61c4878aSAndroid Build Coastguard Workerpw_test("bump_allocator_test") { 478*61c4878aSAndroid Build Coastguard Worker deps = [ 479*61c4878aSAndroid Build Coastguard Worker ":bump_allocator", 480*61c4878aSAndroid Build Coastguard Worker ":testing", 481*61c4878aSAndroid Build Coastguard Worker "$dir_pw_third_party/fuchsia:stdcompat", 482*61c4878aSAndroid Build Coastguard Worker ] 483*61c4878aSAndroid Build Coastguard Worker sources = [ "bump_allocator_test.cc" ] 484*61c4878aSAndroid Build Coastguard Worker} 485*61c4878aSAndroid Build Coastguard Worker 486*61c4878aSAndroid Build Coastguard Workerpw_test("chunk_pool_test") { 487*61c4878aSAndroid Build Coastguard Worker deps = [ 488*61c4878aSAndroid Build Coastguard Worker ":chunk_pool", 489*61c4878aSAndroid Build Coastguard Worker ":testing", 490*61c4878aSAndroid Build Coastguard Worker ] 491*61c4878aSAndroid Build Coastguard Worker sources = [ "chunk_pool_test.cc" ] 492*61c4878aSAndroid Build Coastguard Worker} 493*61c4878aSAndroid Build Coastguard Worker 494*61c4878aSAndroid Build Coastguard Workerpw_test("fallback_allocator_test") { 495*61c4878aSAndroid Build Coastguard Worker deps = [ 496*61c4878aSAndroid Build Coastguard Worker ":fallback_allocator", 497*61c4878aSAndroid Build Coastguard Worker ":testing", 498*61c4878aSAndroid Build Coastguard Worker dir_pw_status, 499*61c4878aSAndroid Build Coastguard Worker ] 500*61c4878aSAndroid Build Coastguard Worker sources = [ "fallback_allocator_test.cc" ] 501*61c4878aSAndroid Build Coastguard Worker} 502*61c4878aSAndroid Build Coastguard Worker 503*61c4878aSAndroid Build Coastguard Workerpw_test("first_fit_test") { 504*61c4878aSAndroid Build Coastguard Worker deps = [ 505*61c4878aSAndroid Build Coastguard Worker ":block_allocator_testing", 506*61c4878aSAndroid Build Coastguard Worker ":buffer", 507*61c4878aSAndroid Build Coastguard Worker ":dual_first_fit_block_allocator", 508*61c4878aSAndroid Build Coastguard Worker ":first_fit", 509*61c4878aSAndroid Build Coastguard Worker ":first_fit_block_allocator", 510*61c4878aSAndroid Build Coastguard Worker ":last_fit_block_allocator", 511*61c4878aSAndroid Build Coastguard Worker "$dir_pw_third_party/fuchsia:stdcompat", 512*61c4878aSAndroid Build Coastguard Worker ] 513*61c4878aSAndroid Build Coastguard Worker sources = [ "first_fit_test.cc" ] 514*61c4878aSAndroid Build Coastguard Worker} 515*61c4878aSAndroid Build Coastguard Worker 516*61c4878aSAndroid Build Coastguard Workerpw_test("fragmentation_test") { 517*61c4878aSAndroid Build Coastguard Worker deps = [ 518*61c4878aSAndroid Build Coastguard Worker ":fragmentation", 519*61c4878aSAndroid Build Coastguard Worker ":testing", 520*61c4878aSAndroid Build Coastguard Worker ] 521*61c4878aSAndroid Build Coastguard Worker sources = [ "fragmentation_test.cc" ] 522*61c4878aSAndroid Build Coastguard Worker} 523*61c4878aSAndroid Build Coastguard Worker 524*61c4878aSAndroid Build Coastguard Workerpw_test("freelist_heap_test") { 525*61c4878aSAndroid Build Coastguard Worker deps = [ 526*61c4878aSAndroid Build Coastguard Worker ":freelist_heap", 527*61c4878aSAndroid Build Coastguard Worker "$dir_pw_bytes:alignment", 528*61c4878aSAndroid Build Coastguard Worker "$dir_pw_third_party/fuchsia:stdcompat", 529*61c4878aSAndroid Build Coastguard Worker "block:testing", 530*61c4878aSAndroid Build Coastguard Worker ] 531*61c4878aSAndroid Build Coastguard Worker sources = [ "freelist_heap_test.cc" ] 532*61c4878aSAndroid Build Coastguard Worker} 533*61c4878aSAndroid Build Coastguard Worker 534*61c4878aSAndroid Build Coastguard Workerpw_test("layout_test") { 535*61c4878aSAndroid Build Coastguard Worker deps = [ 536*61c4878aSAndroid Build Coastguard Worker ":deallocator", 537*61c4878aSAndroid Build Coastguard Worker ":testing", 538*61c4878aSAndroid Build Coastguard Worker ] 539*61c4878aSAndroid Build Coastguard Worker sources = [ "layout_test.cc" ] 540*61c4878aSAndroid Build Coastguard Worker} 541*61c4878aSAndroid Build Coastguard Worker 542*61c4878aSAndroid Build Coastguard Workerpw_test("libc_allocator_test") { 543*61c4878aSAndroid Build Coastguard Worker deps = [ 544*61c4878aSAndroid Build Coastguard Worker ":libc_allocator", 545*61c4878aSAndroid Build Coastguard Worker ":testing", 546*61c4878aSAndroid Build Coastguard Worker ] 547*61c4878aSAndroid Build Coastguard Worker sources = [ "libc_allocator_test.cc" ] 548*61c4878aSAndroid Build Coastguard Worker} 549*61c4878aSAndroid Build Coastguard Worker 550*61c4878aSAndroid Build Coastguard Workerpw_test("null_allocator_test") { 551*61c4878aSAndroid Build Coastguard Worker deps = [ 552*61c4878aSAndroid Build Coastguard Worker ":null_allocator", 553*61c4878aSAndroid Build Coastguard Worker ":testing", 554*61c4878aSAndroid Build Coastguard Worker ] 555*61c4878aSAndroid Build Coastguard Worker sources = [ "null_allocator_test.cc" ] 556*61c4878aSAndroid Build Coastguard Worker} 557*61c4878aSAndroid Build Coastguard Worker 558*61c4878aSAndroid Build Coastguard Workerpw_test("pmr_allocator_test") { 559*61c4878aSAndroid Build Coastguard Worker deps = [ 560*61c4878aSAndroid Build Coastguard Worker ":pmr_allocator", 561*61c4878aSAndroid Build Coastguard Worker ":testing", 562*61c4878aSAndroid Build Coastguard Worker ] 563*61c4878aSAndroid Build Coastguard Worker sources = [ "pmr_allocator_test.cc" ] 564*61c4878aSAndroid Build Coastguard Worker} 565*61c4878aSAndroid Build Coastguard Worker 566*61c4878aSAndroid Build Coastguard Workerpw_test("synchronized_allocator_test") { 567*61c4878aSAndroid Build Coastguard Worker enable_if = 568*61c4878aSAndroid Build Coastguard Worker pw_sync_BINARY_SEMAPHORE_BACKEND != "" && pw_sync_MUTEX_BACKEND != "" && 569*61c4878aSAndroid Build Coastguard Worker pw_sync_INTERRUPT_SPIN_LOCK_BACKEND != "" && 570*61c4878aSAndroid Build Coastguard Worker pw_thread_YIELD_BACKEND != "" && 571*61c4878aSAndroid Build Coastguard Worker pw_thread_TEST_THREAD_CONTEXT_BACKEND != "" 572*61c4878aSAndroid Build Coastguard Worker deps = [ 573*61c4878aSAndroid Build Coastguard Worker ":synchronized_allocator", 574*61c4878aSAndroid Build Coastguard Worker ":test_harness", 575*61c4878aSAndroid Build Coastguard Worker ":testing", 576*61c4878aSAndroid Build Coastguard Worker "$dir_pw_sync:binary_semaphore", 577*61c4878aSAndroid Build Coastguard Worker "$dir_pw_sync:interrupt_spin_lock", 578*61c4878aSAndroid Build Coastguard Worker "$dir_pw_sync:mutex", 579*61c4878aSAndroid Build Coastguard Worker "$dir_pw_sync:virtual_basic_lockable", 580*61c4878aSAndroid Build Coastguard Worker "$dir_pw_thread:test_thread_context", 581*61c4878aSAndroid Build Coastguard Worker "$dir_pw_thread:thread", 582*61c4878aSAndroid Build Coastguard Worker "$dir_pw_thread:thread_core", 583*61c4878aSAndroid Build Coastguard Worker "$dir_pw_thread:yield", 584*61c4878aSAndroid Build Coastguard Worker dir_pw_random, 585*61c4878aSAndroid Build Coastguard Worker ] 586*61c4878aSAndroid Build Coastguard Worker sources = [ "synchronized_allocator_test.cc" ] 587*61c4878aSAndroid Build Coastguard Worker} 588*61c4878aSAndroid Build Coastguard Worker 589*61c4878aSAndroid Build Coastguard Workerpw_test("tracking_allocator_test") { 590*61c4878aSAndroid Build Coastguard Worker deps = [ 591*61c4878aSAndroid Build Coastguard Worker ":testing", 592*61c4878aSAndroid Build Coastguard Worker ":tracking_allocator", 593*61c4878aSAndroid Build Coastguard Worker ] 594*61c4878aSAndroid Build Coastguard Worker sources = [ "tracking_allocator_test.cc" ] 595*61c4878aSAndroid Build Coastguard Worker} 596*61c4878aSAndroid Build Coastguard Worker 597*61c4878aSAndroid Build Coastguard Workerpw_test("typed_pool_test") { 598*61c4878aSAndroid Build Coastguard Worker deps = [ 599*61c4878aSAndroid Build Coastguard Worker ":testing", 600*61c4878aSAndroid Build Coastguard Worker ":typed_pool", 601*61c4878aSAndroid Build Coastguard Worker "$dir_pw_bytes:alignment", 602*61c4878aSAndroid Build Coastguard Worker ] 603*61c4878aSAndroid Build Coastguard Worker sources = [ "typed_pool_test.cc" ] 604*61c4878aSAndroid Build Coastguard Worker} 605*61c4878aSAndroid Build Coastguard Worker 606*61c4878aSAndroid Build Coastguard Workerpw_test("unique_ptr_test") { 607*61c4878aSAndroid Build Coastguard Worker deps = [ ":testing" ] 608*61c4878aSAndroid Build Coastguard Worker sources = [ "unique_ptr_test.cc" ] 609*61c4878aSAndroid Build Coastguard Worker} 610*61c4878aSAndroid Build Coastguard Worker 611*61c4878aSAndroid Build Coastguard Workerpw_test("worst_fit_test") { 612*61c4878aSAndroid Build Coastguard Worker deps = [ 613*61c4878aSAndroid Build Coastguard Worker ":block_allocator_testing", 614*61c4878aSAndroid Build Coastguard Worker ":worst_fit", 615*61c4878aSAndroid Build Coastguard Worker ":worst_fit_block_allocator", 616*61c4878aSAndroid Build Coastguard Worker ] 617*61c4878aSAndroid Build Coastguard Worker sources = [ "worst_fit_test.cc" ] 618*61c4878aSAndroid Build Coastguard Worker} 619*61c4878aSAndroid Build Coastguard Worker 620*61c4878aSAndroid Build Coastguard Workerpw_test_group("tests") { 621*61c4878aSAndroid Build Coastguard Worker tests = [ 622*61c4878aSAndroid Build Coastguard Worker ":allocator_as_pool_test", 623*61c4878aSAndroid Build Coastguard Worker 624*61c4878aSAndroid Build Coastguard Worker # ":allocator_nc_test", 625*61c4878aSAndroid Build Coastguard Worker ":allocator_test", 626*61c4878aSAndroid Build Coastguard Worker ":best_fit_test", 627*61c4878aSAndroid Build Coastguard Worker ":bucket_allocator_test", 628*61c4878aSAndroid Build Coastguard Worker ":buddy_allocator_test", 629*61c4878aSAndroid Build Coastguard Worker ":buffer_test", 630*61c4878aSAndroid Build Coastguard Worker ":bump_allocator_test", 631*61c4878aSAndroid Build Coastguard Worker ":chunk_pool_test", 632*61c4878aSAndroid Build Coastguard Worker ":fallback_allocator_test", 633*61c4878aSAndroid Build Coastguard Worker ":first_fit_test", 634*61c4878aSAndroid Build Coastguard Worker ":fragmentation_test", 635*61c4878aSAndroid Build Coastguard Worker ":freelist_heap_test", 636*61c4878aSAndroid Build Coastguard Worker ":layout_test", 637*61c4878aSAndroid Build Coastguard Worker ":libc_allocator_test", 638*61c4878aSAndroid Build Coastguard Worker ":null_allocator_test", 639*61c4878aSAndroid Build Coastguard Worker ":pmr_allocator_test", 640*61c4878aSAndroid Build Coastguard Worker ":synchronized_allocator_test", 641*61c4878aSAndroid Build Coastguard Worker ":tracking_allocator_test", 642*61c4878aSAndroid Build Coastguard Worker ":typed_pool_test", 643*61c4878aSAndroid Build Coastguard Worker ":unique_ptr_test", 644*61c4878aSAndroid Build Coastguard Worker ":worst_fit_test", 645*61c4878aSAndroid Build Coastguard Worker ] 646*61c4878aSAndroid Build Coastguard Worker group_deps = [ 647*61c4878aSAndroid Build Coastguard Worker "benchmarks:tests", 648*61c4878aSAndroid Build Coastguard Worker "block:tests", 649*61c4878aSAndroid Build Coastguard Worker "bucket:tests", 650*61c4878aSAndroid Build Coastguard Worker "examples", 651*61c4878aSAndroid Build Coastguard Worker ] 652*61c4878aSAndroid Build Coastguard Worker} 653*61c4878aSAndroid Build Coastguard Worker 654*61c4878aSAndroid Build Coastguard Worker# Docs 655*61c4878aSAndroid Build Coastguard Worker 656*61c4878aSAndroid Build Coastguard Workerpw_source_set("size_reporter") { 657*61c4878aSAndroid Build Coastguard Worker public_configs = [ ":public_include_path" ] 658*61c4878aSAndroid Build Coastguard Worker public = [ "public/pw_allocator/size_reporter.h" ] 659*61c4878aSAndroid Build Coastguard Worker public_deps = [ 660*61c4878aSAndroid Build Coastguard Worker ":null_allocator", 661*61c4878aSAndroid Build Coastguard Worker "$dir_pw_bloat:bloat_this_binary", 662*61c4878aSAndroid Build Coastguard Worker dir_pw_bytes, 663*61c4878aSAndroid Build Coastguard Worker ] 664*61c4878aSAndroid Build Coastguard Worker} 665*61c4878aSAndroid Build Coastguard Worker 666*61c4878aSAndroid Build Coastguard Workerpw_size_diff("allocator_api_size_report") { 667*61c4878aSAndroid Build Coastguard Worker title = "Size of an empty implmentation of the Allocator interface" 668*61c4878aSAndroid Build Coastguard Worker binaries = [ 669*61c4878aSAndroid Build Coastguard Worker { 670*61c4878aSAndroid Build Coastguard Worker target = "size_report:null_allocator" 671*61c4878aSAndroid Build Coastguard Worker base = "size_report:base" 672*61c4878aSAndroid Build Coastguard Worker label = "NullAllocator" 673*61c4878aSAndroid Build Coastguard Worker }, 674*61c4878aSAndroid Build Coastguard Worker ] 675*61c4878aSAndroid Build Coastguard Worker} 676*61c4878aSAndroid Build Coastguard Worker 677*61c4878aSAndroid Build Coastguard Workerpw_size_diff("concrete_allocators_size_report") { 678*61c4878aSAndroid Build Coastguard Worker title = "Sizes of various concrete allocator implementations" 679*61c4878aSAndroid Build Coastguard Worker binaries = [ 680*61c4878aSAndroid Build Coastguard Worker { 681*61c4878aSAndroid Build Coastguard Worker target = "size_report:best_fit" 682*61c4878aSAndroid Build Coastguard Worker base = "size_report:null_allocator" 683*61c4878aSAndroid Build Coastguard Worker label = "BestFitAllocator" 684*61c4878aSAndroid Build Coastguard Worker }, 685*61c4878aSAndroid Build Coastguard Worker { 686*61c4878aSAndroid Build Coastguard Worker target = "size_report:buddy_allocator" 687*61c4878aSAndroid Build Coastguard Worker base = "size_report:null_allocator" 688*61c4878aSAndroid Build Coastguard Worker label = "BuddyAllocator" 689*61c4878aSAndroid Build Coastguard Worker }, 690*61c4878aSAndroid Build Coastguard Worker { 691*61c4878aSAndroid Build Coastguard Worker target = "size_report:bump_allocator" 692*61c4878aSAndroid Build Coastguard Worker base = "size_report:null_allocator" 693*61c4878aSAndroid Build Coastguard Worker label = "BumpAllocator" 694*61c4878aSAndroid Build Coastguard Worker }, 695*61c4878aSAndroid Build Coastguard Worker { 696*61c4878aSAndroid Build Coastguard Worker target = "size_report:first_fit" 697*61c4878aSAndroid Build Coastguard Worker base = "size_report:null_allocator" 698*61c4878aSAndroid Build Coastguard Worker label = "FirstFitAllocator" 699*61c4878aSAndroid Build Coastguard Worker }, 700*61c4878aSAndroid Build Coastguard Worker { 701*61c4878aSAndroid Build Coastguard Worker target = "size_report:libc_allocator" 702*61c4878aSAndroid Build Coastguard Worker base = "size_report:null_allocator" 703*61c4878aSAndroid Build Coastguard Worker label = "LibCAllocator" 704*61c4878aSAndroid Build Coastguard Worker }, 705*61c4878aSAndroid Build Coastguard Worker { 706*61c4878aSAndroid Build Coastguard Worker target = "size_report:worst_fit" 707*61c4878aSAndroid Build Coastguard Worker base = "size_report:null_allocator" 708*61c4878aSAndroid Build Coastguard Worker label = "WorstFitAllocator" 709*61c4878aSAndroid Build Coastguard Worker }, 710*61c4878aSAndroid Build Coastguard Worker ] 711*61c4878aSAndroid Build Coastguard Worker} 712*61c4878aSAndroid Build Coastguard Worker 713*61c4878aSAndroid Build Coastguard Workerpw_size_diff("forwarding_allocators_size_report") { 714*61c4878aSAndroid Build Coastguard Worker title = "Sizes of various forwarding allocator implementations" 715*61c4878aSAndroid Build Coastguard Worker binaries = [ 716*61c4878aSAndroid Build Coastguard Worker { 717*61c4878aSAndroid Build Coastguard Worker target = "size_report:fallback_allocator" 718*61c4878aSAndroid Build Coastguard Worker base = "size_report:fallback_allocator_base" 719*61c4878aSAndroid Build Coastguard Worker label = "FallbackAllocator" 720*61c4878aSAndroid Build Coastguard Worker }, 721*61c4878aSAndroid Build Coastguard Worker { 722*61c4878aSAndroid Build Coastguard Worker target = "size_report:pmr_allocator" 723*61c4878aSAndroid Build Coastguard Worker base = "size_report:pmr_allocator_base" 724*61c4878aSAndroid Build Coastguard Worker label = "AsPmrAllocator" 725*61c4878aSAndroid Build Coastguard Worker }, 726*61c4878aSAndroid Build Coastguard Worker { 727*61c4878aSAndroid Build Coastguard Worker target = "size_report:synchronized_allocator_isl" 728*61c4878aSAndroid Build Coastguard Worker base = "size_report:first_fit" 729*61c4878aSAndroid Build Coastguard Worker label = "SynchronizedAllocator<sync::InterruptSpinLock>" 730*61c4878aSAndroid Build Coastguard Worker }, 731*61c4878aSAndroid Build Coastguard Worker { 732*61c4878aSAndroid Build Coastguard Worker target = "size_report:synchronized_allocator_mutex" 733*61c4878aSAndroid Build Coastguard Worker base = "size_report:first_fit" 734*61c4878aSAndroid Build Coastguard Worker label = "SynchronizedAllocator<sync::Mutex>" 735*61c4878aSAndroid Build Coastguard Worker }, 736*61c4878aSAndroid Build Coastguard Worker { 737*61c4878aSAndroid Build Coastguard Worker target = "size_report:tracking_allocator_all_metrics" 738*61c4878aSAndroid Build Coastguard Worker base = "size_report:first_fit" 739*61c4878aSAndroid Build Coastguard Worker label = "TrackingAllocator<AllMetrics>" 740*61c4878aSAndroid Build Coastguard Worker }, 741*61c4878aSAndroid Build Coastguard Worker { 742*61c4878aSAndroid Build Coastguard Worker target = "size_report:tracking_allocator_no_metrics" 743*61c4878aSAndroid Build Coastguard Worker base = "size_report:first_fit" 744*61c4878aSAndroid Build Coastguard Worker label = "TrackingAllocator<NoMetrics>" 745*61c4878aSAndroid Build Coastguard Worker }, 746*61c4878aSAndroid Build Coastguard Worker ] 747*61c4878aSAndroid Build Coastguard Worker} 748*61c4878aSAndroid Build Coastguard Worker 749*61c4878aSAndroid Build Coastguard Workerpw_size_diff("allocator_utilities_size_report") { 750*61c4878aSAndroid Build Coastguard Worker title = "Sizes of various allocator utility classes" 751*61c4878aSAndroid Build Coastguard Worker binaries = [ 752*61c4878aSAndroid Build Coastguard Worker { 753*61c4878aSAndroid Build Coastguard Worker target = "size_report:unique_ptr" 754*61c4878aSAndroid Build Coastguard Worker base = "size_report:first_fit" 755*61c4878aSAndroid Build Coastguard Worker label = "UniquePtr" 756*61c4878aSAndroid Build Coastguard Worker }, 757*61c4878aSAndroid Build Coastguard Worker ] 758*61c4878aSAndroid Build Coastguard Worker} 759*61c4878aSAndroid Build Coastguard Worker 760*61c4878aSAndroid Build Coastguard Workerpw_doc_group("docs") { 761*61c4878aSAndroid Build Coastguard Worker inputs = [ 762*61c4878aSAndroid Build Coastguard Worker "doc_resources/pw_allocator_heap_visualizer_demo.png", 763*61c4878aSAndroid Build Coastguard Worker "examples/basic.cc", 764*61c4878aSAndroid Build Coastguard Worker "examples/block_allocator.cc", 765*61c4878aSAndroid Build Coastguard Worker "examples/custom_allocator_perf_test.cc", 766*61c4878aSAndroid Build Coastguard Worker "examples/custom_allocator_test_harness.h", 767*61c4878aSAndroid Build Coastguard Worker "examples/custom_allocator_test.cc", 768*61c4878aSAndroid Build Coastguard Worker "examples/custom_allocator.cc", 769*61c4878aSAndroid Build Coastguard Worker "examples/custom_allocator.h", 770*61c4878aSAndroid Build Coastguard Worker "examples/linker_sections.cc", 771*61c4878aSAndroid Build Coastguard Worker "examples/metrics.cc", 772*61c4878aSAndroid Build Coastguard Worker "examples/pmr.cc", 773*61c4878aSAndroid Build Coastguard Worker "examples/size_report.cc", 774*61c4878aSAndroid Build Coastguard Worker "examples/spin_lock.cc", 775*61c4878aSAndroid Build Coastguard Worker ] 776*61c4878aSAndroid Build Coastguard Worker sources = [ 777*61c4878aSAndroid Build Coastguard Worker "api.rst", 778*61c4878aSAndroid Build Coastguard Worker "code_size.rst", 779*61c4878aSAndroid Build Coastguard Worker "design.rst", 780*61c4878aSAndroid Build Coastguard Worker "docs.rst", 781*61c4878aSAndroid Build Coastguard Worker "guide.rst", 782*61c4878aSAndroid Build Coastguard Worker ] 783*61c4878aSAndroid Build Coastguard Worker report_deps = [ 784*61c4878aSAndroid Build Coastguard Worker ":allocator_api_size_report", 785*61c4878aSAndroid Build Coastguard Worker ":concrete_allocators_size_report", 786*61c4878aSAndroid Build Coastguard Worker ":forwarding_allocators_size_report", 787*61c4878aSAndroid Build Coastguard Worker "examples:custom_allocator_size_report", 788*61c4878aSAndroid Build Coastguard Worker ] 789*61c4878aSAndroid Build Coastguard Worker} 790