blob: 9532e828fb61bac72ccc21e57cb63567b8cb6dd2 [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",
201 "//aos/libc:aos_strsignal",
202 "//aos/testing:googletest",
203 "//aos/testing:prevent_exit",
Austin Schuh20b2b082019-09-11 20:42:56 -0700204 ],
205)
206
207cc_test(
208 name = "lockless_queue_death_test",
209 srcs = ["lockless_queue_death_test.cc"],
210 deps = [
211 ":lockless_queue",
212 ":queue_racer",
213 ":signalfd",
214 "//aos:event",
215 "//aos/events:epoll",
216 "//aos/libc:aos_strsignal",
217 "//aos/testing:googletest",
218 "//aos/testing:prevent_exit",
219 "//aos/testing:test_logging",
220 ],
221)
Brian Silvermana1652f32020-01-29 20:41:44 -0800222
223cc_library(
224 name = "data_alignment",
225 hdrs = [
226 "data_alignment.h",
227 ],
228 visibility = ["//visibility:public"],
229 deps = [
230 "@com_github_google_glog//:glog",
231 ],
232)
Austin Schuh5af45eb2019-09-16 20:54:18 -0700233
234cc_library(
235 name = "latency_lib",
236 srcs = ["latency_lib.cc"],
237 hdrs = ["latency_lib.h"],
238 deps = [
239 "//aos:realtime",
240 "//aos/logging",
241 "//aos/time",
242 "@com_github_google_glog//:glog",
243 ],
244)
245
246cc_binary(
247 name = "signal_stress",
248 srcs = [
249 "signal_stress.cc",
250 ],
251 deps = [
252 ":latency_lib",
253 "//aos:init",
254 "//aos/events:epoll",
255 "@com_github_gflags_gflags//:gflags",
256 ],
257)
258
259cc_binary(
260 name = "futex_latency",
261 srcs = [
262 "futex_latency.cc",
263 ],
264 deps = [
265 ":latency_lib",
266 "//aos:condition",
267 "//aos:init",
268 "//aos/mutex",
269 "@com_github_gflags_gflags//:gflags",
270 ],
271)
272
273cc_binary(
274 name = "named_pipe_latency",
275 srcs = [
276 "named_pipe_latency.cc",
277 ],
278 deps = [
279 ":latency_lib",
280 "//aos:init",
281 "//aos/events:epoll",
282 "@com_github_gflags_gflags//:gflags",
283 ],
284)
285
286cc_binary(
287 name = "eventfd_latency",
288 srcs = [
289 "eventfd_latency.cc",
290 ],
291 deps = [
292 ":latency_lib",
293 "//aos:init",
294 "//aos/events:epoll",
295 "@com_github_gflags_gflags//:gflags",
296 ],
297)
Brian Silverman001f24d2020-08-12 19:33:20 -0700298
299cc_binary(
300 name = "print_lockless_queue_memory",
Brian Silverman001f24d2020-08-12 19:33:20 -0700301 srcs = [
302 "print_lockless_queue_memory.cc",
303 ],
Brian Silverman4d6207a2020-09-18 15:26:52 -0700304 visibility = ["//visibility:public"],
Brian Silverman001f24d2020-08-12 19:33:20 -0700305 deps = [
306 ":lockless_queue",
307 ],
308)