xref: /aosp_15_r20/external/pigweed/pw_allocator/BUILD.bazel (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker# Copyright 2020 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 Workerload("//pw_unit_test:pw_cc_test.bzl", "pw_cc_test")
16*61c4878aSAndroid Build Coastguard Worker
17*61c4878aSAndroid Build Coastguard Workerpackage(default_visibility = ["//visibility:public"])
18*61c4878aSAndroid Build Coastguard Worker
19*61c4878aSAndroid Build Coastguard Workerlicenses(["notice"])
20*61c4878aSAndroid Build Coastguard Worker
21*61c4878aSAndroid Build Coastguard Worker# Module configuration
22*61c4878aSAndroid Build Coastguard Worker
23*61c4878aSAndroid Build Coastguard Workercc_library(
24*61c4878aSAndroid Build Coastguard Worker    name = "config",
25*61c4878aSAndroid Build Coastguard Worker    hdrs = ["public/pw_allocator/config.h"],
26*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
27*61c4878aSAndroid Build Coastguard Worker    deps = [":config_override"],
28*61c4878aSAndroid Build Coastguard Worker)
29*61c4878aSAndroid Build Coastguard Worker
30*61c4878aSAndroid Build Coastguard Workerlabel_flag(
31*61c4878aSAndroid Build Coastguard Worker    name = "config_override",
32*61c4878aSAndroid Build Coastguard Worker    build_setting_default = "//pw_build:default_module_config",
33*61c4878aSAndroid Build Coastguard Worker)
34*61c4878aSAndroid Build Coastguard Worker
35*61c4878aSAndroid Build Coastguard Workercc_library(
36*61c4878aSAndroid Build Coastguard Worker    name = "test_config",
37*61c4878aSAndroid Build Coastguard Worker    defines = [
38*61c4878aSAndroid Build Coastguard Worker        "PW_ALLOCATOR_STRICT_VALIDATION=1",
39*61c4878aSAndroid Build Coastguard Worker        "PW_ALLOCATOR_BLOCK_POISON_INTERVAL=4",
40*61c4878aSAndroid Build Coastguard Worker    ],
41*61c4878aSAndroid Build Coastguard Worker)
42*61c4878aSAndroid Build Coastguard Worker
43*61c4878aSAndroid Build Coastguard Worker# Libraries
44*61c4878aSAndroid Build Coastguard Worker
45*61c4878aSAndroid Build Coastguard Workercc_library(
46*61c4878aSAndroid Build Coastguard Worker    name = "allocator",
47*61c4878aSAndroid Build Coastguard Worker    srcs = [
48*61c4878aSAndroid Build Coastguard Worker        "allocator.cc",
49*61c4878aSAndroid Build Coastguard Worker    ],
50*61c4878aSAndroid Build Coastguard Worker    hdrs = [
51*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/allocator.h",
52*61c4878aSAndroid Build Coastguard Worker    ],
53*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
54*61c4878aSAndroid Build Coastguard Worker    deps = [
55*61c4878aSAndroid Build Coastguard Worker        ":deallocator",
56*61c4878aSAndroid Build Coastguard Worker        "//pw_result",
57*61c4878aSAndroid Build Coastguard Worker    ],
58*61c4878aSAndroid Build Coastguard Worker)
59*61c4878aSAndroid Build Coastguard Worker
60*61c4878aSAndroid Build Coastguard Workercc_library(
61*61c4878aSAndroid Build Coastguard Worker    name = "allocator_as_pool",
62*61c4878aSAndroid Build Coastguard Worker    srcs = [
63*61c4878aSAndroid Build Coastguard Worker        "allocator_as_pool.cc",
64*61c4878aSAndroid Build Coastguard Worker    ],
65*61c4878aSAndroid Build Coastguard Worker    hdrs = [
66*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/allocator_as_pool.h",
67*61c4878aSAndroid Build Coastguard Worker    ],
68*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
69*61c4878aSAndroid Build Coastguard Worker    deps = [
70*61c4878aSAndroid Build Coastguard Worker        ":allocator",
71*61c4878aSAndroid Build Coastguard Worker        ":pool",
72*61c4878aSAndroid Build Coastguard Worker        "//pw_status",
73*61c4878aSAndroid Build Coastguard Worker    ],
74*61c4878aSAndroid Build Coastguard Worker)
75*61c4878aSAndroid Build Coastguard Worker
76*61c4878aSAndroid Build Coastguard Workercc_library(
77*61c4878aSAndroid Build Coastguard Worker    name = "best_fit",
78*61c4878aSAndroid Build Coastguard Worker    hdrs = ["public/pw_allocator/best_fit.h"],
79*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
80*61c4878aSAndroid Build Coastguard Worker    deps = [
81*61c4878aSAndroid Build Coastguard Worker        ":block_allocator",
82*61c4878aSAndroid Build Coastguard Worker        ":config",
83*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/block:detailed_block",
84*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/bucket:fast_sorted",
85*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/bucket:sorted",
86*61c4878aSAndroid Build Coastguard Worker    ],
87*61c4878aSAndroid Build Coastguard Worker)
88*61c4878aSAndroid Build Coastguard Worker
89*61c4878aSAndroid Build Coastguard Workercc_library(
90*61c4878aSAndroid Build Coastguard Worker    name = "best_fit_block_allocator",
91*61c4878aSAndroid Build Coastguard Worker    hdrs = ["public/pw_allocator/best_fit_block_allocator.h"],
92*61c4878aSAndroid Build Coastguard Worker    includes = ["public"],
93*61c4878aSAndroid Build Coastguard Worker    deps = [
94*61c4878aSAndroid Build Coastguard Worker        ":best_fit",
95*61c4878aSAndroid Build Coastguard Worker        ":config",
96*61c4878aSAndroid Build Coastguard Worker    ],
97*61c4878aSAndroid Build Coastguard Worker)
98*61c4878aSAndroid Build Coastguard Worker
99*61c4878aSAndroid Build Coastguard Workercc_library(
100*61c4878aSAndroid Build Coastguard Worker    name = "block_allocator",
101*61c4878aSAndroid Build Coastguard Worker    srcs = ["block_allocator.cc"],
102*61c4878aSAndroid Build Coastguard Worker    hdrs = ["public/pw_allocator/block_allocator.h"],
103*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
104*61c4878aSAndroid Build Coastguard Worker    deps = [
105*61c4878aSAndroid Build Coastguard Worker        ":allocator",
106*61c4878aSAndroid Build Coastguard Worker        ":fragmentation",
107*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/block:allocatable",
108*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/block:basic",
109*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/block:iterable",
110*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/block:poisonable",
111*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/block:with_layout",
112*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
113*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes:alignment",
114*61c4878aSAndroid Build Coastguard Worker        "//pw_result",
115*61c4878aSAndroid Build Coastguard Worker        "//pw_status",
116*61c4878aSAndroid Build Coastguard Worker    ],
117*61c4878aSAndroid Build Coastguard Worker)
118*61c4878aSAndroid Build Coastguard Worker
119*61c4878aSAndroid Build Coastguard Workercc_library(
120*61c4878aSAndroid Build Coastguard Worker    name = "bucket_allocator",
121*61c4878aSAndroid Build Coastguard Worker    hdrs = [
122*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/bucket_allocator.h",
123*61c4878aSAndroid Build Coastguard Worker    ],
124*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
125*61c4878aSAndroid Build Coastguard Worker    deps = [
126*61c4878aSAndroid Build Coastguard Worker        ":block_allocator",
127*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/block:detailed_block",
128*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/bucket:unordered",
129*61c4878aSAndroid Build Coastguard Worker        "//pw_status",
130*61c4878aSAndroid Build Coastguard Worker    ],
131*61c4878aSAndroid Build Coastguard Worker)
132*61c4878aSAndroid Build Coastguard Worker
133*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated interfaces.
134*61c4878aSAndroid Build Coastguard Workercc_library(
135*61c4878aSAndroid Build Coastguard Worker    name = "bucket_block_allocator",
136*61c4878aSAndroid Build Coastguard Worker    hdrs = ["public/pw_allocator/bucket_block_allocator.h"],
137*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
138*61c4878aSAndroid Build Coastguard Worker    deps = [":bucket_allocator"],
139*61c4878aSAndroid Build Coastguard Worker)
140*61c4878aSAndroid Build Coastguard Worker
141*61c4878aSAndroid Build Coastguard Workercc_library(
142*61c4878aSAndroid Build Coastguard Worker    name = "buddy_allocator",
143*61c4878aSAndroid Build Coastguard Worker    srcs = [
144*61c4878aSAndroid Build Coastguard Worker        "buddy_allocator.cc",
145*61c4878aSAndroid Build Coastguard Worker    ],
146*61c4878aSAndroid Build Coastguard Worker    hdrs = [
147*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/buddy_allocator.h",
148*61c4878aSAndroid Build Coastguard Worker    ],
149*61c4878aSAndroid Build Coastguard Worker    implementation_deps = [
150*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
151*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes:alignment",
152*61c4878aSAndroid Build Coastguard Worker        "//third_party/fuchsia:stdcompat",
153*61c4878aSAndroid Build Coastguard Worker    ],
154*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
155*61c4878aSAndroid Build Coastguard Worker    deps = [
156*61c4878aSAndroid Build Coastguard Worker        ":allocator",
157*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/block:basic",
158*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/bucket:unordered",
159*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes",
160*61c4878aSAndroid Build Coastguard Worker        "//pw_containers:vector",
161*61c4878aSAndroid Build Coastguard Worker        "//pw_status",
162*61c4878aSAndroid Build Coastguard Worker    ],
163*61c4878aSAndroid Build Coastguard Worker)
164*61c4878aSAndroid Build Coastguard Worker
165*61c4878aSAndroid Build Coastguard Workercc_library(
166*61c4878aSAndroid Build Coastguard Worker    name = "buffer",
167*61c4878aSAndroid Build Coastguard Worker    hdrs = [
168*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/buffer.h",
169*61c4878aSAndroid Build Coastguard Worker    ],
170*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
171*61c4878aSAndroid Build Coastguard Worker    deps = [
172*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
173*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes",
174*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes:alignment",
175*61c4878aSAndroid Build Coastguard Worker        "//pw_result",
176*61c4878aSAndroid Build Coastguard Worker    ],
177*61c4878aSAndroid Build Coastguard Worker)
178*61c4878aSAndroid Build Coastguard Worker
179*61c4878aSAndroid Build Coastguard Workercc_library(
180*61c4878aSAndroid Build Coastguard Worker    name = "bump_allocator",
181*61c4878aSAndroid Build Coastguard Worker    srcs = [
182*61c4878aSAndroid Build Coastguard Worker        "bump_allocator.cc",
183*61c4878aSAndroid Build Coastguard Worker    ],
184*61c4878aSAndroid Build Coastguard Worker    hdrs = [
185*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/bump_allocator.h",
186*61c4878aSAndroid Build Coastguard Worker    ],
187*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
188*61c4878aSAndroid Build Coastguard Worker    deps = [
189*61c4878aSAndroid Build Coastguard Worker        ":allocator",
190*61c4878aSAndroid Build Coastguard Worker        ":buffer",
191*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes",
192*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes:alignment",
193*61c4878aSAndroid Build Coastguard Worker    ],
194*61c4878aSAndroid Build Coastguard Worker)
195*61c4878aSAndroid Build Coastguard Worker
196*61c4878aSAndroid Build Coastguard Workercc_library(
197*61c4878aSAndroid Build Coastguard Worker    name = "chunk_pool",
198*61c4878aSAndroid Build Coastguard Worker    srcs = [
199*61c4878aSAndroid Build Coastguard Worker        "chunk_pool.cc",
200*61c4878aSAndroid Build Coastguard Worker    ],
201*61c4878aSAndroid Build Coastguard Worker    hdrs = [
202*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/chunk_pool.h",
203*61c4878aSAndroid Build Coastguard Worker    ],
204*61c4878aSAndroid Build Coastguard Worker    implementation_deps = [
205*61c4878aSAndroid Build Coastguard Worker        ":buffer",
206*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
207*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes:alignment",
208*61c4878aSAndroid Build Coastguard Worker        "//third_party/fuchsia:stdcompat",
209*61c4878aSAndroid Build Coastguard Worker    ],
210*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
211*61c4878aSAndroid Build Coastguard Worker    deps = [
212*61c4878aSAndroid Build Coastguard Worker        ":pool",
213*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes",
214*61c4878aSAndroid Build Coastguard Worker        "//pw_result",
215*61c4878aSAndroid Build Coastguard Worker    ],
216*61c4878aSAndroid Build Coastguard Worker)
217*61c4878aSAndroid Build Coastguard Worker
218*61c4878aSAndroid Build Coastguard Workercc_library(
219*61c4878aSAndroid Build Coastguard Worker    name = "deallocator",
220*61c4878aSAndroid Build Coastguard Worker    srcs = [
221*61c4878aSAndroid Build Coastguard Worker        "unique_ptr.cc",
222*61c4878aSAndroid Build Coastguard Worker    ],
223*61c4878aSAndroid Build Coastguard Worker    hdrs = [
224*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/capability.h",
225*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/deallocator.h",
226*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/layout.h",
227*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/unique_ptr.h",
228*61c4878aSAndroid Build Coastguard Worker    ],
229*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
230*61c4878aSAndroid Build Coastguard Worker    deps = [
231*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
232*61c4878aSAndroid Build Coastguard Worker        "//pw_preprocessor",
233*61c4878aSAndroid Build Coastguard Worker        "//pw_result",
234*61c4878aSAndroid Build Coastguard Worker        "//pw_status",
235*61c4878aSAndroid Build Coastguard Worker    ],
236*61c4878aSAndroid Build Coastguard Worker)
237*61c4878aSAndroid Build Coastguard Worker
238*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated interfaces.
239*61c4878aSAndroid Build Coastguard Workercc_library(
240*61c4878aSAndroid Build Coastguard Worker    name = "dual_first_fit_block_allocator",
241*61c4878aSAndroid Build Coastguard Worker    hdrs = ["public/pw_allocator/dual_first_fit_block_allocator.h"],
242*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
243*61c4878aSAndroid Build Coastguard Worker    deps = [":first_fit"],
244*61c4878aSAndroid Build Coastguard Worker)
245*61c4878aSAndroid Build Coastguard Worker
246*61c4878aSAndroid Build Coastguard Workercc_library(
247*61c4878aSAndroid Build Coastguard Worker    name = "fallback_allocator",
248*61c4878aSAndroid Build Coastguard Worker    srcs = [
249*61c4878aSAndroid Build Coastguard Worker        "fallback_allocator.cc",
250*61c4878aSAndroid Build Coastguard Worker    ],
251*61c4878aSAndroid Build Coastguard Worker    hdrs = [
252*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/fallback_allocator.h",
253*61c4878aSAndroid Build Coastguard Worker    ],
254*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
255*61c4878aSAndroid Build Coastguard Worker    deps = [
256*61c4878aSAndroid Build Coastguard Worker        ":allocator",
257*61c4878aSAndroid Build Coastguard Worker        ":deallocator",
258*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
259*61c4878aSAndroid Build Coastguard Worker        "//pw_result",
260*61c4878aSAndroid Build Coastguard Worker        "//pw_status",
261*61c4878aSAndroid Build Coastguard Worker    ],
262*61c4878aSAndroid Build Coastguard Worker)
263*61c4878aSAndroid Build Coastguard Worker
264*61c4878aSAndroid Build Coastguard Workercc_library(
265*61c4878aSAndroid Build Coastguard Worker    name = "first_fit",
266*61c4878aSAndroid Build Coastguard Worker    hdrs = ["public/pw_allocator/first_fit.h"],
267*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
268*61c4878aSAndroid Build Coastguard Worker    deps = [
269*61c4878aSAndroid Build Coastguard Worker        ":block_allocator",
270*61c4878aSAndroid Build Coastguard Worker        ":config",
271*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/block:detailed_block",
272*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/bucket:sequenced",
273*61c4878aSAndroid Build Coastguard Worker    ],
274*61c4878aSAndroid Build Coastguard Worker)
275*61c4878aSAndroid Build Coastguard Worker
276*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated interfaces.
277*61c4878aSAndroid Build Coastguard Workercc_library(
278*61c4878aSAndroid Build Coastguard Worker    name = "first_fit_block_allocator",
279*61c4878aSAndroid Build Coastguard Worker    hdrs = ["public/pw_allocator/first_fit_block_allocator.h"],
280*61c4878aSAndroid Build Coastguard Worker    includes = ["public"],
281*61c4878aSAndroid Build Coastguard Worker    deps = [":first_fit"],
282*61c4878aSAndroid Build Coastguard Worker)
283*61c4878aSAndroid Build Coastguard Worker
284*61c4878aSAndroid Build Coastguard Workercc_library(
285*61c4878aSAndroid Build Coastguard Worker    name = "fragmentation",
286*61c4878aSAndroid Build Coastguard Worker    srcs = ["fragmentation.cc"],
287*61c4878aSAndroid Build Coastguard Worker    hdrs = ["public/pw_allocator/fragmentation.h"],
288*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
289*61c4878aSAndroid Build Coastguard Worker)
290*61c4878aSAndroid Build Coastguard Worker
291*61c4878aSAndroid Build Coastguard Workercc_library(
292*61c4878aSAndroid Build Coastguard Worker    name = "freelist_heap",
293*61c4878aSAndroid Build Coastguard Worker    hdrs = [
294*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/freelist_heap.h",
295*61c4878aSAndroid Build Coastguard Worker    ],
296*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
297*61c4878aSAndroid Build Coastguard Worker    deps = [
298*61c4878aSAndroid Build Coastguard Worker        ":bucket_allocator",
299*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
300*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes",
301*61c4878aSAndroid Build Coastguard Worker        "//pw_preprocessor",
302*61c4878aSAndroid Build Coastguard Worker    ],
303*61c4878aSAndroid Build Coastguard Worker)
304*61c4878aSAndroid Build Coastguard Worker
305*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated interfaces.
306*61c4878aSAndroid Build Coastguard Workercc_library(
307*61c4878aSAndroid Build Coastguard Worker    name = "last_fit_block_allocator",
308*61c4878aSAndroid Build Coastguard Worker    hdrs = ["public/pw_allocator/last_fit_block_allocator.h"],
309*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
310*61c4878aSAndroid Build Coastguard Worker    deps = [":first_fit"],
311*61c4878aSAndroid Build Coastguard Worker)
312*61c4878aSAndroid Build Coastguard Worker
313*61c4878aSAndroid Build Coastguard Workercc_library(
314*61c4878aSAndroid Build Coastguard Worker    name = "libc_allocator",
315*61c4878aSAndroid Build Coastguard Worker    srcs = [
316*61c4878aSAndroid Build Coastguard Worker        "libc_allocator.cc",
317*61c4878aSAndroid Build Coastguard Worker    ],
318*61c4878aSAndroid Build Coastguard Worker    hdrs = [
319*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/libc_allocator.h",
320*61c4878aSAndroid Build Coastguard Worker    ],
321*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
322*61c4878aSAndroid Build Coastguard Worker    deps = [
323*61c4878aSAndroid Build Coastguard Worker        ":allocator",
324*61c4878aSAndroid Build Coastguard Worker    ],
325*61c4878aSAndroid Build Coastguard Worker)
326*61c4878aSAndroid Build Coastguard Worker
327*61c4878aSAndroid Build Coastguard Workercc_library(
328*61c4878aSAndroid Build Coastguard Worker    name = "null_allocator",
329*61c4878aSAndroid Build Coastguard Worker    srcs = [
330*61c4878aSAndroid Build Coastguard Worker        "null_allocator.cc",
331*61c4878aSAndroid Build Coastguard Worker    ],
332*61c4878aSAndroid Build Coastguard Worker    hdrs = [
333*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/null_allocator.h",
334*61c4878aSAndroid Build Coastguard Worker    ],
335*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
336*61c4878aSAndroid Build Coastguard Worker    deps = [
337*61c4878aSAndroid Build Coastguard Worker        ":allocator",
338*61c4878aSAndroid Build Coastguard Worker    ],
339*61c4878aSAndroid Build Coastguard Worker)
340*61c4878aSAndroid Build Coastguard Worker
341*61c4878aSAndroid Build Coastguard Workercc_library(
342*61c4878aSAndroid Build Coastguard Worker    name = "pmr_allocator",
343*61c4878aSAndroid Build Coastguard Worker    srcs = ["pmr_allocator.cc"],
344*61c4878aSAndroid Build Coastguard Worker    hdrs = ["public/pw_allocator/pmr_allocator.h"],
345*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
346*61c4878aSAndroid Build Coastguard Worker    deps = [
347*61c4878aSAndroid Build Coastguard Worker        ":allocator",
348*61c4878aSAndroid Build Coastguard Worker        ":config",
349*61c4878aSAndroid Build Coastguard Worker    ],
350*61c4878aSAndroid Build Coastguard Worker)
351*61c4878aSAndroid Build Coastguard Worker
352*61c4878aSAndroid Build Coastguard Workercc_library(
353*61c4878aSAndroid Build Coastguard Worker    name = "pool",
354*61c4878aSAndroid Build Coastguard Worker    hdrs = ["public/pw_allocator/pool.h"],
355*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
356*61c4878aSAndroid Build Coastguard Worker    deps = [
357*61c4878aSAndroid Build Coastguard Worker        ":deallocator",
358*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes",
359*61c4878aSAndroid Build Coastguard Worker        "//pw_result",
360*61c4878aSAndroid Build Coastguard Worker    ],
361*61c4878aSAndroid Build Coastguard Worker)
362*61c4878aSAndroid Build Coastguard Worker
363*61c4878aSAndroid Build Coastguard Workercc_library(
364*61c4878aSAndroid Build Coastguard Worker    name = "synchronized_allocator",
365*61c4878aSAndroid Build Coastguard Worker    hdrs = [
366*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/synchronized_allocator.h",
367*61c4878aSAndroid Build Coastguard Worker    ],
368*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
369*61c4878aSAndroid Build Coastguard Worker    deps = [
370*61c4878aSAndroid Build Coastguard Worker        ":allocator",
371*61c4878aSAndroid Build Coastguard Worker        "//pw_sync:borrow",
372*61c4878aSAndroid Build Coastguard Worker    ],
373*61c4878aSAndroid Build Coastguard Worker)
374*61c4878aSAndroid Build Coastguard Worker
375*61c4878aSAndroid Build Coastguard Workercc_library(
376*61c4878aSAndroid Build Coastguard Worker    name = "tracking_allocator",
377*61c4878aSAndroid Build Coastguard Worker    hdrs = [
378*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/metrics.h",
379*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/tracking_allocator.h",
380*61c4878aSAndroid Build Coastguard Worker    ],
381*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
382*61c4878aSAndroid Build Coastguard Worker    deps = [
383*61c4878aSAndroid Build Coastguard Worker        ":allocator",
384*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
385*61c4878aSAndroid Build Coastguard Worker        "//pw_metric:metric",
386*61c4878aSAndroid Build Coastguard Worker        "//pw_status",
387*61c4878aSAndroid Build Coastguard Worker    ],
388*61c4878aSAndroid Build Coastguard Worker)
389*61c4878aSAndroid Build Coastguard Worker
390*61c4878aSAndroid Build Coastguard Workercc_library(
391*61c4878aSAndroid Build Coastguard Worker    name = "typed_pool",
392*61c4878aSAndroid Build Coastguard Worker    hdrs = [
393*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/typed_pool.h",
394*61c4878aSAndroid Build Coastguard Worker    ],
395*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
396*61c4878aSAndroid Build Coastguard Worker    deps = [
397*61c4878aSAndroid Build Coastguard Worker        ":allocator",
398*61c4878aSAndroid Build Coastguard Worker        ":chunk_pool",
399*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes",
400*61c4878aSAndroid Build Coastguard Worker        "//pw_result",
401*61c4878aSAndroid Build Coastguard Worker    ],
402*61c4878aSAndroid Build Coastguard Worker)
403*61c4878aSAndroid Build Coastguard Worker
404*61c4878aSAndroid Build Coastguard Workercc_library(
405*61c4878aSAndroid Build Coastguard Worker    name = "worst_fit",
406*61c4878aSAndroid Build Coastguard Worker    hdrs = ["public/pw_allocator/worst_fit.h"],
407*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
408*61c4878aSAndroid Build Coastguard Worker    deps = [
409*61c4878aSAndroid Build Coastguard Worker        ":block_allocator",
410*61c4878aSAndroid Build Coastguard Worker        ":config",
411*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/block:detailed_block",
412*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/bucket:fast_sorted",
413*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/bucket:sorted",
414*61c4878aSAndroid Build Coastguard Worker    ],
415*61c4878aSAndroid Build Coastguard Worker)
416*61c4878aSAndroid Build Coastguard Worker
417*61c4878aSAndroid Build Coastguard Workercc_library(
418*61c4878aSAndroid Build Coastguard Worker    name = "worst_fit_block_allocator",
419*61c4878aSAndroid Build Coastguard Worker    hdrs = ["public/pw_allocator/worst_fit_block_allocator.h"],
420*61c4878aSAndroid Build Coastguard Worker    includes = ["public"],
421*61c4878aSAndroid Build Coastguard Worker    deps = [
422*61c4878aSAndroid Build Coastguard Worker        ":config",
423*61c4878aSAndroid Build Coastguard Worker        ":worst_fit",
424*61c4878aSAndroid Build Coastguard Worker    ],
425*61c4878aSAndroid Build Coastguard Worker)
426*61c4878aSAndroid Build Coastguard Worker
427*61c4878aSAndroid Build Coastguard Worker# Test support
428*61c4878aSAndroid Build Coastguard Worker
429*61c4878aSAndroid Build Coastguard Workercc_library(
430*61c4878aSAndroid Build Coastguard Worker    name = "testing",
431*61c4878aSAndroid Build Coastguard Worker    testonly = True,
432*61c4878aSAndroid Build Coastguard Worker    hdrs = [
433*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/testing.h",
434*61c4878aSAndroid Build Coastguard Worker    ],
435*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
436*61c4878aSAndroid Build Coastguard Worker    deps = [
437*61c4878aSAndroid Build Coastguard Worker        ":allocator",
438*61c4878aSAndroid Build Coastguard Worker        ":buffer",
439*61c4878aSAndroid Build Coastguard Worker        ":first_fit",
440*61c4878aSAndroid Build Coastguard Worker        ":test_config",
441*61c4878aSAndroid Build Coastguard Worker        ":tracking_allocator",
442*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
443*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes",
444*61c4878aSAndroid Build Coastguard Worker        "//pw_result",
445*61c4878aSAndroid Build Coastguard Worker        "//pw_status",
446*61c4878aSAndroid Build Coastguard Worker        "//pw_sync:interrupt_spin_lock",
447*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
448*61c4878aSAndroid Build Coastguard Worker    ],
449*61c4878aSAndroid Build Coastguard Worker)
450*61c4878aSAndroid Build Coastguard Worker
451*61c4878aSAndroid Build Coastguard Workercc_library(
452*61c4878aSAndroid Build Coastguard Worker    name = "block_allocator_testing",
453*61c4878aSAndroid Build Coastguard Worker    testonly = True,
454*61c4878aSAndroid Build Coastguard Worker    srcs = [
455*61c4878aSAndroid Build Coastguard Worker        "block_allocator_testing.cc",
456*61c4878aSAndroid Build Coastguard Worker    ],
457*61c4878aSAndroid Build Coastguard Worker    hdrs = [
458*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/block_allocator_testing.h",
459*61c4878aSAndroid Build Coastguard Worker    ],
460*61c4878aSAndroid Build Coastguard Worker    implementation_deps = [
461*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
462*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes:alignment",
463*61c4878aSAndroid Build Coastguard Worker        "//pw_status",
464*61c4878aSAndroid Build Coastguard Worker        "//third_party/fuchsia:stdcompat",
465*61c4878aSAndroid Build Coastguard Worker    ],
466*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
467*61c4878aSAndroid Build Coastguard Worker    deps = [
468*61c4878aSAndroid Build Coastguard Worker        ":block_allocator",
469*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/block:testing",
470*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
471*61c4878aSAndroid Build Coastguard Worker    ],
472*61c4878aSAndroid Build Coastguard Worker)
473*61c4878aSAndroid Build Coastguard Worker
474*61c4878aSAndroid Build Coastguard Workercc_library(
475*61c4878aSAndroid Build Coastguard Worker    name = "test_harness",
476*61c4878aSAndroid Build Coastguard Worker    testonly = True,
477*61c4878aSAndroid Build Coastguard Worker    srcs = [
478*61c4878aSAndroid Build Coastguard Worker        "test_harness.cc",
479*61c4878aSAndroid Build Coastguard Worker    ],
480*61c4878aSAndroid Build Coastguard Worker    hdrs = [
481*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/test_harness.h",
482*61c4878aSAndroid Build Coastguard Worker    ],
483*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
484*61c4878aSAndroid Build Coastguard Worker    deps = [
485*61c4878aSAndroid Build Coastguard Worker        ":allocator",
486*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
487*61c4878aSAndroid Build Coastguard Worker        "//pw_containers",
488*61c4878aSAndroid Build Coastguard Worker        "//pw_random",
489*61c4878aSAndroid Build Coastguard Worker        "//third_party/fuchsia:stdcompat",
490*61c4878aSAndroid Build Coastguard Worker    ],
491*61c4878aSAndroid Build Coastguard Worker)
492*61c4878aSAndroid Build Coastguard Worker
493*61c4878aSAndroid Build Coastguard Workercc_library(
494*61c4878aSAndroid Build Coastguard Worker    name = "fuzzing",
495*61c4878aSAndroid Build Coastguard Worker    testonly = True,
496*61c4878aSAndroid Build Coastguard Worker    srcs = [
497*61c4878aSAndroid Build Coastguard Worker        "fuzzing.cc",
498*61c4878aSAndroid Build Coastguard Worker    ],
499*61c4878aSAndroid Build Coastguard Worker    hdrs = [
500*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/fuzzing.h",
501*61c4878aSAndroid Build Coastguard Worker    ],
502*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
503*61c4878aSAndroid Build Coastguard Worker    deps = [
504*61c4878aSAndroid Build Coastguard Worker        ":test_harness",
505*61c4878aSAndroid Build Coastguard Worker        "//pw_fuzzer:fuzztest",
506*61c4878aSAndroid Build Coastguard Worker    ],
507*61c4878aSAndroid Build Coastguard Worker)
508*61c4878aSAndroid Build Coastguard Worker
509*61c4878aSAndroid Build Coastguard Worker# Tests
510*61c4878aSAndroid Build Coastguard Worker
511*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
512*61c4878aSAndroid Build Coastguard Worker    name = "allocator_as_pool_test",
513*61c4878aSAndroid Build Coastguard Worker    srcs = [
514*61c4878aSAndroid Build Coastguard Worker        "allocator_as_pool_test.cc",
515*61c4878aSAndroid Build Coastguard Worker    ],
516*61c4878aSAndroid Build Coastguard Worker    deps = [
517*61c4878aSAndroid Build Coastguard Worker        ":allocator_as_pool",
518*61c4878aSAndroid Build Coastguard Worker        ":testing",
519*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
520*61c4878aSAndroid Build Coastguard Worker    ],
521*61c4878aSAndroid Build Coastguard Worker)
522*61c4878aSAndroid Build Coastguard Worker
523*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
524*61c4878aSAndroid Build Coastguard Worker    name = "allocator_test",
525*61c4878aSAndroid Build Coastguard Worker    srcs = [
526*61c4878aSAndroid Build Coastguard Worker        "allocator_test.cc",
527*61c4878aSAndroid Build Coastguard Worker    ],
528*61c4878aSAndroid Build Coastguard Worker    deps = [
529*61c4878aSAndroid Build Coastguard Worker        ":allocator",
530*61c4878aSAndroid Build Coastguard Worker        ":testing",
531*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
532*61c4878aSAndroid Build Coastguard Worker    ],
533*61c4878aSAndroid Build Coastguard Worker)
534*61c4878aSAndroid Build Coastguard Worker
535*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
536*61c4878aSAndroid Build Coastguard Worker    name = "best_fit_test",
537*61c4878aSAndroid Build Coastguard Worker    srcs = ["best_fit_test.cc"],
538*61c4878aSAndroid Build Coastguard Worker    deps = [
539*61c4878aSAndroid Build Coastguard Worker        ":best_fit",
540*61c4878aSAndroid Build Coastguard Worker        ":best_fit_block_allocator",
541*61c4878aSAndroid Build Coastguard Worker        ":block_allocator_testing",
542*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
543*61c4878aSAndroid Build Coastguard Worker    ],
544*61c4878aSAndroid Build Coastguard Worker)
545*61c4878aSAndroid Build Coastguard Worker
546*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
547*61c4878aSAndroid Build Coastguard Worker    name = "bucket_allocator_test",
548*61c4878aSAndroid Build Coastguard Worker    srcs = ["bucket_allocator_test.cc"],
549*61c4878aSAndroid Build Coastguard Worker    deps = [
550*61c4878aSAndroid Build Coastguard Worker        ":block_allocator_testing",
551*61c4878aSAndroid Build Coastguard Worker        ":bucket_allocator",
552*61c4878aSAndroid Build Coastguard Worker        ":bucket_block_allocator",
553*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
554*61c4878aSAndroid Build Coastguard Worker    ],
555*61c4878aSAndroid Build Coastguard Worker)
556*61c4878aSAndroid Build Coastguard Worker
557*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
558*61c4878aSAndroid Build Coastguard Worker    name = "buddy_allocator_test",
559*61c4878aSAndroid Build Coastguard Worker    srcs = [
560*61c4878aSAndroid Build Coastguard Worker        "buddy_allocator_test.cc",
561*61c4878aSAndroid Build Coastguard Worker    ],
562*61c4878aSAndroid Build Coastguard Worker    deps = [
563*61c4878aSAndroid Build Coastguard Worker        ":buddy_allocator",
564*61c4878aSAndroid Build Coastguard Worker        ":testing",
565*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
566*61c4878aSAndroid Build Coastguard Worker    ],
567*61c4878aSAndroid Build Coastguard Worker)
568*61c4878aSAndroid Build Coastguard Worker
569*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
570*61c4878aSAndroid Build Coastguard Worker    name = "buffer_test",
571*61c4878aSAndroid Build Coastguard Worker    srcs = [
572*61c4878aSAndroid Build Coastguard Worker        "buffer_test.cc",
573*61c4878aSAndroid Build Coastguard Worker    ],
574*61c4878aSAndroid Build Coastguard Worker    deps = [
575*61c4878aSAndroid Build Coastguard Worker        ":buffer",
576*61c4878aSAndroid Build Coastguard Worker        ":testing",
577*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes",
578*61c4878aSAndroid Build Coastguard Worker        "//pw_result",
579*61c4878aSAndroid Build Coastguard Worker        "//third_party/fuchsia:stdcompat",
580*61c4878aSAndroid Build Coastguard Worker    ],
581*61c4878aSAndroid Build Coastguard Worker)
582*61c4878aSAndroid Build Coastguard Worker
583*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
584*61c4878aSAndroid Build Coastguard Worker    name = "bump_allocator_test",
585*61c4878aSAndroid Build Coastguard Worker    srcs = [
586*61c4878aSAndroid Build Coastguard Worker        "bump_allocator_test.cc",
587*61c4878aSAndroid Build Coastguard Worker    ],
588*61c4878aSAndroid Build Coastguard Worker    deps = [
589*61c4878aSAndroid Build Coastguard Worker        ":bump_allocator",
590*61c4878aSAndroid Build Coastguard Worker        ":testing",
591*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
592*61c4878aSAndroid Build Coastguard Worker        "//third_party/fuchsia:stdcompat",
593*61c4878aSAndroid Build Coastguard Worker    ],
594*61c4878aSAndroid Build Coastguard Worker)
595*61c4878aSAndroid Build Coastguard Worker
596*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
597*61c4878aSAndroid Build Coastguard Worker    name = "chunk_pool_test",
598*61c4878aSAndroid Build Coastguard Worker    srcs = [
599*61c4878aSAndroid Build Coastguard Worker        "chunk_pool_test.cc",
600*61c4878aSAndroid Build Coastguard Worker    ],
601*61c4878aSAndroid Build Coastguard Worker    deps = [
602*61c4878aSAndroid Build Coastguard Worker        ":chunk_pool",
603*61c4878aSAndroid Build Coastguard Worker        ":testing",
604*61c4878aSAndroid Build Coastguard Worker    ],
605*61c4878aSAndroid Build Coastguard Worker)
606*61c4878aSAndroid Build Coastguard Worker
607*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
608*61c4878aSAndroid Build Coastguard Worker    name = "fallback_allocator_test",
609*61c4878aSAndroid Build Coastguard Worker    srcs = [
610*61c4878aSAndroid Build Coastguard Worker        "fallback_allocator_test.cc",
611*61c4878aSAndroid Build Coastguard Worker    ],
612*61c4878aSAndroid Build Coastguard Worker    deps = [
613*61c4878aSAndroid Build Coastguard Worker        ":fallback_allocator",
614*61c4878aSAndroid Build Coastguard Worker        ":testing",
615*61c4878aSAndroid Build Coastguard Worker        "//pw_status",
616*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
617*61c4878aSAndroid Build Coastguard Worker    ],
618*61c4878aSAndroid Build Coastguard Worker)
619*61c4878aSAndroid Build Coastguard Worker
620*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
621*61c4878aSAndroid Build Coastguard Worker    name = "first_fit_test",
622*61c4878aSAndroid Build Coastguard Worker    srcs = ["first_fit_test.cc"],
623*61c4878aSAndroid Build Coastguard Worker    deps = [
624*61c4878aSAndroid Build Coastguard Worker        ":block_allocator_testing",
625*61c4878aSAndroid Build Coastguard Worker        ":buffer",
626*61c4878aSAndroid Build Coastguard Worker        ":dual_first_fit_block_allocator",
627*61c4878aSAndroid Build Coastguard Worker        ":first_fit",
628*61c4878aSAndroid Build Coastguard Worker        ":first_fit_block_allocator",
629*61c4878aSAndroid Build Coastguard Worker        ":last_fit_block_allocator",
630*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
631*61c4878aSAndroid Build Coastguard Worker        "//third_party/fuchsia:stdcompat",
632*61c4878aSAndroid Build Coastguard Worker    ],
633*61c4878aSAndroid Build Coastguard Worker)
634*61c4878aSAndroid Build Coastguard Worker
635*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
636*61c4878aSAndroid Build Coastguard Worker    name = "fragmentation_test",
637*61c4878aSAndroid Build Coastguard Worker    srcs = ["fragmentation_test.cc"],
638*61c4878aSAndroid Build Coastguard Worker    deps = [
639*61c4878aSAndroid Build Coastguard Worker        ":fragmentation",
640*61c4878aSAndroid Build Coastguard Worker        ":testing",
641*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
642*61c4878aSAndroid Build Coastguard Worker    ],
643*61c4878aSAndroid Build Coastguard Worker)
644*61c4878aSAndroid Build Coastguard Worker
645*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
646*61c4878aSAndroid Build Coastguard Worker    name = "freelist_heap_test",
647*61c4878aSAndroid Build Coastguard Worker    srcs = [
648*61c4878aSAndroid Build Coastguard Worker        "freelist_heap_test.cc",
649*61c4878aSAndroid Build Coastguard Worker    ],
650*61c4878aSAndroid Build Coastguard Worker    deps = [
651*61c4878aSAndroid Build Coastguard Worker        ":freelist_heap",
652*61c4878aSAndroid Build Coastguard Worker        ":testing",
653*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/block:testing",
654*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes:alignment",
655*61c4878aSAndroid Build Coastguard Worker        "//third_party/fuchsia:stdcompat",
656*61c4878aSAndroid Build Coastguard Worker    ],
657*61c4878aSAndroid Build Coastguard Worker)
658*61c4878aSAndroid Build Coastguard Worker
659*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
660*61c4878aSAndroid Build Coastguard Worker    name = "layout_test",
661*61c4878aSAndroid Build Coastguard Worker    srcs = ["layout_test.cc"],
662*61c4878aSAndroid Build Coastguard Worker    deps = [
663*61c4878aSAndroid Build Coastguard Worker        ":deallocator",
664*61c4878aSAndroid Build Coastguard Worker        ":testing",
665*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
666*61c4878aSAndroid Build Coastguard Worker    ],
667*61c4878aSAndroid Build Coastguard Worker)
668*61c4878aSAndroid Build Coastguard Worker
669*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
670*61c4878aSAndroid Build Coastguard Worker    name = "libc_allocator_test",
671*61c4878aSAndroid Build Coastguard Worker    srcs = [
672*61c4878aSAndroid Build Coastguard Worker        "libc_allocator_test.cc",
673*61c4878aSAndroid Build Coastguard Worker    ],
674*61c4878aSAndroid Build Coastguard Worker    deps = [
675*61c4878aSAndroid Build Coastguard Worker        ":libc_allocator",
676*61c4878aSAndroid Build Coastguard Worker        ":testing",
677*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
678*61c4878aSAndroid Build Coastguard Worker    ],
679*61c4878aSAndroid Build Coastguard Worker)
680*61c4878aSAndroid Build Coastguard Worker
681*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
682*61c4878aSAndroid Build Coastguard Worker    name = "null_allocator_test",
683*61c4878aSAndroid Build Coastguard Worker    srcs = [
684*61c4878aSAndroid Build Coastguard Worker        "null_allocator_test.cc",
685*61c4878aSAndroid Build Coastguard Worker    ],
686*61c4878aSAndroid Build Coastguard Worker    deps = [
687*61c4878aSAndroid Build Coastguard Worker        ":null_allocator",
688*61c4878aSAndroid Build Coastguard Worker        ":testing",
689*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
690*61c4878aSAndroid Build Coastguard Worker    ],
691*61c4878aSAndroid Build Coastguard Worker)
692*61c4878aSAndroid Build Coastguard Worker
693*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
694*61c4878aSAndroid Build Coastguard Worker    name = "pmr_allocator_test",
695*61c4878aSAndroid Build Coastguard Worker    srcs = [
696*61c4878aSAndroid Build Coastguard Worker        "pmr_allocator_test.cc",
697*61c4878aSAndroid Build Coastguard Worker    ],
698*61c4878aSAndroid Build Coastguard Worker    deps = [
699*61c4878aSAndroid Build Coastguard Worker        ":pmr_allocator",
700*61c4878aSAndroid Build Coastguard Worker        ":testing",
701*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
702*61c4878aSAndroid Build Coastguard Worker    ],
703*61c4878aSAndroid Build Coastguard Worker)
704*61c4878aSAndroid Build Coastguard Worker
705*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
706*61c4878aSAndroid Build Coastguard Worker    name = "synchronized_allocator_test",
707*61c4878aSAndroid Build Coastguard Worker    srcs = [
708*61c4878aSAndroid Build Coastguard Worker        "synchronized_allocator_test.cc",
709*61c4878aSAndroid Build Coastguard Worker    ],
710*61c4878aSAndroid Build Coastguard Worker    # TODO: b/358411629 - This test times out on rp2.
711*61c4878aSAndroid Build Coastguard Worker    target_compatible_with = select({
712*61c4878aSAndroid Build Coastguard Worker        "@pico-sdk//bazel/constraint:rp2040": ["@platforms//:incompatible"],
713*61c4878aSAndroid Build Coastguard Worker        "@pico-sdk//bazel/constraint:rp2350": ["@platforms//:incompatible"],
714*61c4878aSAndroid Build Coastguard Worker        "//conditions:default": [],
715*61c4878aSAndroid Build Coastguard Worker    }),
716*61c4878aSAndroid Build Coastguard Worker    deps = [
717*61c4878aSAndroid Build Coastguard Worker        ":synchronized_allocator",
718*61c4878aSAndroid Build Coastguard Worker        ":test_harness",
719*61c4878aSAndroid Build Coastguard Worker        ":testing",
720*61c4878aSAndroid Build Coastguard Worker        "//pw_random",
721*61c4878aSAndroid Build Coastguard Worker        "//pw_sync:binary_semaphore",
722*61c4878aSAndroid Build Coastguard Worker        "//pw_sync:interrupt_spin_lock",
723*61c4878aSAndroid Build Coastguard Worker        "//pw_sync:mutex",
724*61c4878aSAndroid Build Coastguard Worker        "//pw_sync:virtual_basic_lockable",
725*61c4878aSAndroid Build Coastguard Worker        "//pw_thread:test_thread_context",
726*61c4878aSAndroid Build Coastguard Worker        "//pw_thread:thread",
727*61c4878aSAndroid Build Coastguard Worker        "//pw_thread:thread_core",
728*61c4878aSAndroid Build Coastguard Worker        "//pw_thread:yield",
729*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
730*61c4878aSAndroid Build Coastguard Worker    ],
731*61c4878aSAndroid Build Coastguard Worker)
732*61c4878aSAndroid Build Coastguard Worker
733*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
734*61c4878aSAndroid Build Coastguard Worker    name = "tracking_allocator_test",
735*61c4878aSAndroid Build Coastguard Worker    srcs = [
736*61c4878aSAndroid Build Coastguard Worker        "tracking_allocator_test.cc",
737*61c4878aSAndroid Build Coastguard Worker    ],
738*61c4878aSAndroid Build Coastguard Worker    deps = [
739*61c4878aSAndroid Build Coastguard Worker        ":testing",
740*61c4878aSAndroid Build Coastguard Worker        ":tracking_allocator",
741*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
742*61c4878aSAndroid Build Coastguard Worker    ],
743*61c4878aSAndroid Build Coastguard Worker)
744*61c4878aSAndroid Build Coastguard Worker
745*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
746*61c4878aSAndroid Build Coastguard Worker    name = "typed_pool_test",
747*61c4878aSAndroid Build Coastguard Worker    srcs = [
748*61c4878aSAndroid Build Coastguard Worker        "typed_pool_test.cc",
749*61c4878aSAndroid Build Coastguard Worker    ],
750*61c4878aSAndroid Build Coastguard Worker    deps = [
751*61c4878aSAndroid Build Coastguard Worker        ":testing",
752*61c4878aSAndroid Build Coastguard Worker        ":typed_pool",
753*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes:alignment",
754*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
755*61c4878aSAndroid Build Coastguard Worker    ],
756*61c4878aSAndroid Build Coastguard Worker)
757*61c4878aSAndroid Build Coastguard Worker
758*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
759*61c4878aSAndroid Build Coastguard Worker    name = "unique_ptr_test",
760*61c4878aSAndroid Build Coastguard Worker    srcs = ["unique_ptr_test.cc"],
761*61c4878aSAndroid Build Coastguard Worker    deps = [
762*61c4878aSAndroid Build Coastguard Worker        ":allocator",
763*61c4878aSAndroid Build Coastguard Worker        ":testing",
764*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
765*61c4878aSAndroid Build Coastguard Worker    ],
766*61c4878aSAndroid Build Coastguard Worker)
767*61c4878aSAndroid Build Coastguard Worker
768*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
769*61c4878aSAndroid Build Coastguard Worker    name = "worst_fit_test",
770*61c4878aSAndroid Build Coastguard Worker    srcs = ["worst_fit_test.cc"],
771*61c4878aSAndroid Build Coastguard Worker    deps = [
772*61c4878aSAndroid Build Coastguard Worker        ":block_allocator_testing",
773*61c4878aSAndroid Build Coastguard Worker        ":worst_fit",
774*61c4878aSAndroid Build Coastguard Worker        ":worst_fit_block_allocator",
775*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test",
776*61c4878aSAndroid Build Coastguard Worker    ],
777*61c4878aSAndroid Build Coastguard Worker)
778*61c4878aSAndroid Build Coastguard Worker
779*61c4878aSAndroid Build Coastguard Worker# Docs
780*61c4878aSAndroid Build Coastguard Worker
781*61c4878aSAndroid Build Coastguard Workercc_library(
782*61c4878aSAndroid Build Coastguard Worker    name = "size_reporter",
783*61c4878aSAndroid Build Coastguard Worker    hdrs = ["public/pw_allocator/size_reporter.h"],
784*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
785*61c4878aSAndroid Build Coastguard Worker    deps = [
786*61c4878aSAndroid Build Coastguard Worker        ":null_allocator",
787*61c4878aSAndroid Build Coastguard Worker        "//pw_bloat:bloat_this_binary",
788*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes",
789*61c4878aSAndroid Build Coastguard Worker    ],
790*61c4878aSAndroid Build Coastguard Worker)
791*61c4878aSAndroid Build Coastguard Worker
792*61c4878aSAndroid Build Coastguard Workerfilegroup(
793*61c4878aSAndroid Build Coastguard Worker    name = "doxygen",
794*61c4878aSAndroid Build Coastguard Worker    srcs = [
795*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/allocator.h",
796*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/allocator_as_pool.h",
797*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/best_fit.h",
798*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/block_allocator.h",
799*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/bucket_allocator.h",
800*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/buddy_allocator.h",
801*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/buffer.h",
802*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/bump_allocator.h",
803*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/capability.h",
804*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/chunk_pool.h",
805*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/config.h",
806*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/deallocator.h",
807*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/fallback_allocator.h",
808*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/first_fit.h",
809*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/fragmentation.h",
810*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/fuzzing.h",
811*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/layout.h",
812*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/libc_allocator.h",
813*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/metrics.h",
814*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/null_allocator.h",
815*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/pmr_allocator.h",
816*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/pool.h",
817*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/size_reporter.h",
818*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/synchronized_allocator.h",
819*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/test_harness.h",
820*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/testing.h",
821*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/tracking_allocator.h",
822*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/typed_pool.h",
823*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/unique_ptr.h",
824*61c4878aSAndroid Build Coastguard Worker        "public/pw_allocator/worst_fit.h",
825*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/block:doxygen",
826*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator/bucket:doxygen",
827*61c4878aSAndroid Build Coastguard Worker    ],
828*61c4878aSAndroid Build Coastguard Worker)
829