blob: 63cee2a6b7c5b574e315eac3ebb91b781e442c1d [file] [log] [blame]
Brian Silverman100534c2015-09-07 15:51:23 -04001cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -08002 name = "aos_sync",
3 srcs = [
4 "aos_sync.cc",
5 ],
6 hdrs = [
7 "aos_sync.h",
8 ],
9 linkopts = [
10 "-lpthread",
11 ],
Alex Perrycb7da4b2019-08-28 19:35:56 -070012 visibility = ["//visibility:public"],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080013 deps = [
John Park33858a32018-09-28 23:05:48 -070014 "//aos:macros",
Brian Silvermanb47f5552020-10-01 15:08:14 -070015 "//aos:thread_local",
John Park33858a32018-09-28 23:05:48 -070016 "//aos/util:compiler_memory_barrier",
Alex Perrycb7da4b2019-08-28 19:35:56 -070017 "@com_github_google_glog//:glog",
18 "@com_google_absl//absl/base",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080019 ],
Brian Silverman100534c2015-09-07 15:51:23 -040020)
21
22cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080023 name = "core_lib",
24 srcs = [
25 "core_lib.c",
26 ],
27 hdrs = [
28 "core_lib.h",
29 ],
Alex Perrycb7da4b2019-08-28 19:35:56 -070030 visibility = ["//visibility:public"],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080031 deps = [
32 ":aos_sync",
33 ":shared_mem_types",
34 ],
Brian Silverman100534c2015-09-07 15:51:23 -040035)
36
37cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080038 name = "shared_mem",
39 srcs = [
Alex Perrycb7da4b2019-08-28 19:35:56 -070040 "shared_mem.cc",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080041 ],
42 hdrs = [
43 "shared_mem.h",
44 ],
45 linkopts = [
46 "-lrt",
47 ],
Alex Perrycb7da4b2019-08-28 19:35:56 -070048 visibility = ["//visibility:public"],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080049 deps = [
50 ":aos_sync",
51 ":core_lib",
52 ":shared_mem_types",
Alex Perrycb7da4b2019-08-28 19:35:56 -070053 "@com_github_google_glog//:glog",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080054 ],
Austin Schuh044e18b2015-10-21 20:17:09 -070055)
56
57cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080058 # TODO(Brian): This should be shared_mem{,.h}, and the other one should be
59 # shared_mem_init{,.cc,.h}.
60 name = "shared_mem_types",
61 hdrs = [
62 "shared_mem_types.h",
63 ],
64 deps = [
65 ":aos_sync",
66 ],
Brian Silverman100534c2015-09-07 15:51:23 -040067)
68
Brian Silverman100534c2015-09-07 15:51:23 -040069cc_test(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080070 name = "ipc_stress_test",
71 srcs = [
72 "ipc_stress_test.cc",
73 ],
74 tags = [
75 "manual",
76 ],
77 deps = [
78 ":core_lib",
John Park33858a32018-09-28 23:05:48 -070079 "//aos:die",
John Park33858a32018-09-28 23:05:48 -070080 "//aos/libc:aos_strsignal",
81 "//aos/libc:dirname",
82 "//aos/logging",
Brian Silverman16a923c2018-10-31 19:40:51 -070083 "//aos/mutex",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080084 "//aos/testing:googletest",
85 "//aos/testing:test_shm",
Brian Silverman16a923c2018-10-31 19:40:51 -070086 "//aos/time",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080087 ],
Brian Silverman100534c2015-09-07 15:51:23 -040088)
89
Brian Silvermane4d8b282015-12-24 13:44:48 -080090cc_binary(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080091 name = "ipc_comparison",
92 srcs = [
93 "ipc_comparison.cc",
94 ],
95 deps = [
John Park33858a32018-09-28 23:05:48 -070096 "//aos:condition",
97 "//aos:event",
Brian Silverman16a923c2018-10-31 19:40:51 -070098 "//aos:init",
John Park33858a32018-09-28 23:05:48 -070099 "//aos/logging",
100 "//aos/logging:implementations",
Brian Silverman16a923c2018-10-31 19:40:51 -0700101 "//aos/mutex",
102 "@com_github_gflags_gflags//:gflags",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800103 ],
Brian Silvermane4d8b282015-12-24 13:44:48 -0800104)
Austin Schuh6c590f82019-09-11 19:23:12 -0700105
106cc_library(
107 name = "signalfd",
108 srcs = [
109 "signalfd.cc",
110 ],
111 hdrs = [
112 "signalfd.h",
113 ],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700114 visibility = ["//visibility:public"],
Austin Schuh6c590f82019-09-11 19:23:12 -0700115 deps = [
Alex Perrycb7da4b2019-08-28 19:35:56 -0700116 "@com_github_google_glog//:glog",
Austin Schuh6c590f82019-09-11 19:23:12 -0700117 ],
118)
Austin Schuh25356e22019-09-11 19:27:07 -0700119
Brian Silverman407cc532019-11-03 11:40:56 -0800120cc_test(
121 name = "signalfd_test",
122 srcs = [
123 "signalfd_test.cc",
124 ],
125 deps = [
126 ":signalfd",
127 "//aos/testing:googletest",
128 "//aos/testing:test_logging",
129 "@com_github_google_glog//:glog",
130 ],
131)
132
Austin Schuh25356e22019-09-11 19:27:07 -0700133cc_library(
134 name = "index",
Austin Schuh20b2b082019-09-11 20:42:56 -0700135 srcs = ["index.cc"],
Austin Schuh25356e22019-09-11 19:27:07 -0700136 hdrs = ["index.h"],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700137 visibility = ["//visibility:public"],
Brian Silverman177567e2020-08-12 19:51:33 -0700138 deps = [
139 "@com_github_google_glog//:glog",
140 ],
Austin Schuh25356e22019-09-11 19:27:07 -0700141)
142
143cc_test(
144 name = "index_test",
145 srcs = ["index_test.cc"],
146 deps = [
147 ":index",
148 "//aos/testing:googletest",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700149 "@com_github_google_glog//:glog",
Austin Schuh25356e22019-09-11 19:27:07 -0700150 ],
151)
Austin Schuh20b2b082019-09-11 20:42:56 -0700152
153cc_library(
154 name = "lockless_queue",
155 srcs = [
156 "lockless_queue.cc",
157 "lockless_queue_memory.h",
158 ],
159 hdrs = ["lockless_queue.h"],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700160 visibility = ["//visibility:public"],
Austin Schuh20b2b082019-09-11 20:42:56 -0700161 deps = [
162 ":aos_sync",
Brian Silvermana1652f32020-01-29 20:41:44 -0800163 ":data_alignment",
Austin Schuh20b2b082019-09-11 20:42:56 -0700164 ":index",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700165 "//aos:realtime",
Austin Schuh20b2b082019-09-11 20:42:56 -0700166 "//aos/time",
167 "//aos/util:compiler_memory_barrier",
Austin Schuhf257f3c2019-10-27 21:00:43 -0700168 "@com_github_google_glog//:glog",
Austin Schuhbe416742020-10-03 17:24:26 -0700169 "@com_google_absl//absl/strings",
Brian Silverman0eaa1da2020-08-12 20:03:52 -0700170 "@com_google_absl//absl/types:span",
Austin Schuh20b2b082019-09-11 20:42:56 -0700171 ],
172)
173
174cc_library(
175 name = "queue_racer",
176 testonly = True,
177 srcs = [
178 "queue_racer.cc",
179 ],
180 hdrs = [
181 "queue_racer.h",
182 ],
183 deps = [
184 ":lockless_queue",
185 "//aos:event",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700186 "//aos/testing:googletest",
Austin Schuh20b2b082019-09-11 20:42:56 -0700187 ],
188)
189
190cc_test(
191 name = "lockless_queue_test",
192 timeout = "eternal",
193 srcs = ["lockless_queue_test.cc"],
194 deps = [
195 ":lockless_queue",
196 ":queue_racer",
197 ":signalfd",
198 "//aos:event",
199 "//aos/events:epoll",
200 "//aos/libc:aos_strsignal",
201 "//aos/testing:googletest",
202 "//aos/testing:prevent_exit",
Austin Schuh20b2b082019-09-11 20:42:56 -0700203 ],
204)
205
206cc_test(
207 name = "lockless_queue_death_test",
208 srcs = ["lockless_queue_death_test.cc"],
209 deps = [
210 ":lockless_queue",
211 ":queue_racer",
212 ":signalfd",
213 "//aos:event",
214 "//aos/events:epoll",
215 "//aos/libc:aos_strsignal",
216 "//aos/testing:googletest",
217 "//aos/testing:prevent_exit",
218 "//aos/testing:test_logging",
219 ],
220)
Brian Silvermana1652f32020-01-29 20:41:44 -0800221
222cc_library(
223 name = "data_alignment",
224 hdrs = [
225 "data_alignment.h",
226 ],
227 visibility = ["//visibility:public"],
228 deps = [
229 "@com_github_google_glog//:glog",
230 ],
231)
Austin Schuh5af45eb2019-09-16 20:54:18 -0700232
233cc_library(
234 name = "latency_lib",
235 srcs = ["latency_lib.cc"],
236 hdrs = ["latency_lib.h"],
237 deps = [
238 "//aos:realtime",
239 "//aos/logging",
240 "//aos/time",
241 "@com_github_google_glog//:glog",
242 ],
243)
244
245cc_binary(
246 name = "signal_stress",
247 srcs = [
248 "signal_stress.cc",
249 ],
250 deps = [
251 ":latency_lib",
252 "//aos:init",
253 "//aos/events:epoll",
254 "@com_github_gflags_gflags//:gflags",
255 ],
256)
257
258cc_binary(
259 name = "futex_latency",
260 srcs = [
261 "futex_latency.cc",
262 ],
263 deps = [
264 ":latency_lib",
265 "//aos:condition",
266 "//aos:init",
267 "//aos/mutex",
268 "@com_github_gflags_gflags//:gflags",
269 ],
270)
271
272cc_binary(
273 name = "named_pipe_latency",
274 srcs = [
275 "named_pipe_latency.cc",
276 ],
277 deps = [
278 ":latency_lib",
279 "//aos:init",
280 "//aos/events:epoll",
281 "@com_github_gflags_gflags//:gflags",
282 ],
283)
284
285cc_binary(
286 name = "eventfd_latency",
287 srcs = [
288 "eventfd_latency.cc",
289 ],
290 deps = [
291 ":latency_lib",
292 "//aos:init",
293 "//aos/events:epoll",
294 "@com_github_gflags_gflags//:gflags",
295 ],
296)
Brian Silverman001f24d2020-08-12 19:33:20 -0700297
298cc_binary(
299 name = "print_lockless_queue_memory",
Brian Silverman001f24d2020-08-12 19:33:20 -0700300 srcs = [
301 "print_lockless_queue_memory.cc",
302 ],
Brian Silverman4d6207a2020-09-18 15:26:52 -0700303 visibility = ["//visibility:public"],
Brian Silverman001f24d2020-08-12 19:33:20 -0700304 deps = [
305 ":lockless_queue",
306 ],
307)