blob: 0fb307a217f610fc30a9827429ee8f378d201b16 [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 ],
Brian Silverman687896e2020-10-01 15:05:38 -070095 linkopts = ["-lrt"],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080096 deps = [
John Park33858a32018-09-28 23:05:48 -070097 "//aos:condition",
98 "//aos:event",
Brian Silverman16a923c2018-10-31 19:40:51 -070099 "//aos:init",
John Park33858a32018-09-28 23:05:48 -0700100 "//aos/logging",
101 "//aos/logging:implementations",
Brian Silverman16a923c2018-10-31 19:40:51 -0700102 "//aos/mutex",
103 "@com_github_gflags_gflags//:gflags",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800104 ],
Brian Silvermane4d8b282015-12-24 13:44:48 -0800105)
Austin Schuh6c590f82019-09-11 19:23:12 -0700106
107cc_library(
108 name = "signalfd",
109 srcs = [
110 "signalfd.cc",
111 ],
112 hdrs = [
113 "signalfd.h",
114 ],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700115 visibility = ["//visibility:public"],
Austin Schuh6c590f82019-09-11 19:23:12 -0700116 deps = [
Alex Perrycb7da4b2019-08-28 19:35:56 -0700117 "@com_github_google_glog//:glog",
Austin Schuh6c590f82019-09-11 19:23:12 -0700118 ],
119)
Austin Schuh25356e22019-09-11 19:27:07 -0700120
Brian Silverman407cc532019-11-03 11:40:56 -0800121cc_test(
122 name = "signalfd_test",
123 srcs = [
124 "signalfd_test.cc",
125 ],
126 deps = [
127 ":signalfd",
128 "//aos/testing:googletest",
129 "//aos/testing:test_logging",
130 "@com_github_google_glog//:glog",
131 ],
132)
133
Austin Schuh25356e22019-09-11 19:27:07 -0700134cc_library(
135 name = "index",
Austin Schuh20b2b082019-09-11 20:42:56 -0700136 srcs = ["index.cc"],
Austin Schuh25356e22019-09-11 19:27:07 -0700137 hdrs = ["index.h"],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700138 visibility = ["//visibility:public"],
Brian Silverman177567e2020-08-12 19:51:33 -0700139 deps = [
140 "@com_github_google_glog//:glog",
141 ],
Austin Schuh25356e22019-09-11 19:27:07 -0700142)
143
144cc_test(
145 name = "index_test",
146 srcs = ["index_test.cc"],
147 deps = [
148 ":index",
149 "//aos/testing:googletest",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700150 "@com_github_google_glog//:glog",
Austin Schuh25356e22019-09-11 19:27:07 -0700151 ],
152)
Austin Schuh20b2b082019-09-11 20:42:56 -0700153
154cc_library(
155 name = "lockless_queue",
156 srcs = [
157 "lockless_queue.cc",
158 "lockless_queue_memory.h",
159 ],
160 hdrs = ["lockless_queue.h"],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700161 visibility = ["//visibility:public"],
Austin Schuh20b2b082019-09-11 20:42:56 -0700162 deps = [
163 ":aos_sync",
Brian Silvermana1652f32020-01-29 20:41:44 -0800164 ":data_alignment",
Austin Schuh20b2b082019-09-11 20:42:56 -0700165 ":index",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700166 "//aos:realtime",
Austin Schuh20b2b082019-09-11 20:42:56 -0700167 "//aos/time",
168 "//aos/util:compiler_memory_barrier",
Austin Schuhf257f3c2019-10-27 21:00:43 -0700169 "@com_github_google_glog//:glog",
Austin Schuhbe416742020-10-03 17:24:26 -0700170 "@com_google_absl//absl/strings",
Brian Silverman0eaa1da2020-08-12 20:03:52 -0700171 "@com_google_absl//absl/types:span",
Austin Schuh20b2b082019-09-11 20:42:56 -0700172 ],
173)
174
175cc_library(
176 name = "queue_racer",
177 testonly = True,
178 srcs = [
179 "queue_racer.cc",
180 ],
181 hdrs = [
182 "queue_racer.h",
183 ],
184 deps = [
185 ":lockless_queue",
186 "//aos:event",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700187 "//aos/testing:googletest",
Austin Schuh20b2b082019-09-11 20:42:56 -0700188 ],
189)
190
191cc_test(
192 name = "lockless_queue_test",
193 timeout = "eternal",
194 srcs = ["lockless_queue_test.cc"],
195 deps = [
196 ":lockless_queue",
197 ":queue_racer",
198 ":signalfd",
199 "//aos:event",
200 "//aos/events:epoll",
Austin Schuh20b2b082019-09-11 20:42:56 -0700201 "//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)