blob: d5add53b90b18a478bfdd1f9b0db3603f0540126 [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",
John Park33858a32018-09-28 23:05:48 -070015 "//aos/util:compiler_memory_barrier",
Alex Perrycb7da4b2019-08-28 19:35:56 -070016 "@com_github_google_glog//:glog",
17 "@com_google_absl//absl/base",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080018 ],
Brian Silverman100534c2015-09-07 15:51:23 -040019)
20
21cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080022 name = "core_lib",
23 srcs = [
24 "core_lib.c",
25 ],
26 hdrs = [
27 "core_lib.h",
28 ],
Alex Perrycb7da4b2019-08-28 19:35:56 -070029 visibility = ["//visibility:public"],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080030 deps = [
31 ":aos_sync",
32 ":shared_mem_types",
33 ],
Brian Silverman100534c2015-09-07 15:51:23 -040034)
35
36cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080037 name = "shared_mem",
38 srcs = [
Alex Perrycb7da4b2019-08-28 19:35:56 -070039 "shared_mem.cc",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080040 ],
41 hdrs = [
42 "shared_mem.h",
43 ],
44 linkopts = [
45 "-lrt",
46 ],
Alex Perrycb7da4b2019-08-28 19:35:56 -070047 visibility = ["//visibility:public"],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080048 deps = [
49 ":aos_sync",
50 ":core_lib",
51 ":shared_mem_types",
Alex Perrycb7da4b2019-08-28 19:35:56 -070052 "@com_github_google_glog//:glog",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080053 ],
Austin Schuh044e18b2015-10-21 20:17:09 -070054)
55
56cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080057 # TODO(Brian): This should be shared_mem{,.h}, and the other one should be
58 # shared_mem_init{,.cc,.h}.
59 name = "shared_mem_types",
60 hdrs = [
61 "shared_mem_types.h",
62 ],
63 deps = [
64 ":aos_sync",
65 ],
Brian Silverman100534c2015-09-07 15:51:23 -040066)
67
Brian Silverman100534c2015-09-07 15:51:23 -040068cc_test(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080069 name = "ipc_stress_test",
70 srcs = [
71 "ipc_stress_test.cc",
72 ],
73 tags = [
74 "manual",
75 ],
76 deps = [
77 ":core_lib",
John Park33858a32018-09-28 23:05:48 -070078 "//aos:die",
John Park33858a32018-09-28 23:05:48 -070079 "//aos/libc:aos_strsignal",
80 "//aos/libc:dirname",
81 "//aos/logging",
Brian Silverman16a923c2018-10-31 19:40:51 -070082 "//aos/mutex",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080083 "//aos/testing:googletest",
84 "//aos/testing:test_shm",
Brian Silverman16a923c2018-10-31 19:40:51 -070085 "//aos/time",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080086 ],
Brian Silverman100534c2015-09-07 15:51:23 -040087)
88
Brian Silvermane4d8b282015-12-24 13:44:48 -080089cc_binary(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080090 name = "ipc_comparison",
91 srcs = [
92 "ipc_comparison.cc",
93 ],
94 deps = [
John Park33858a32018-09-28 23:05:48 -070095 "//aos:condition",
96 "//aos:event",
Brian Silverman16a923c2018-10-31 19:40:51 -070097 "//aos:init",
John Park33858a32018-09-28 23:05:48 -070098 "//aos/logging",
99 "//aos/logging:implementations",
Brian Silverman16a923c2018-10-31 19:40:51 -0700100 "//aos/mutex",
101 "@com_github_gflags_gflags//:gflags",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800102 ],
Brian Silvermane4d8b282015-12-24 13:44:48 -0800103)
Austin Schuh6c590f82019-09-11 19:23:12 -0700104
105cc_library(
106 name = "signalfd",
107 srcs = [
108 "signalfd.cc",
109 ],
110 hdrs = [
111 "signalfd.h",
112 ],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700113 visibility = ["//visibility:public"],
Austin Schuh6c590f82019-09-11 19:23:12 -0700114 deps = [
Alex Perrycb7da4b2019-08-28 19:35:56 -0700115 "@com_github_google_glog//:glog",
Austin Schuh6c590f82019-09-11 19:23:12 -0700116 ],
117)
Austin Schuh25356e22019-09-11 19:27:07 -0700118
Brian Silverman407cc532019-11-03 11:40:56 -0800119cc_test(
120 name = "signalfd_test",
121 srcs = [
122 "signalfd_test.cc",
123 ],
124 deps = [
125 ":signalfd",
126 "//aos/testing:googletest",
127 "//aos/testing:test_logging",
128 "@com_github_google_glog//:glog",
129 ],
130)
131
Austin Schuh25356e22019-09-11 19:27:07 -0700132cc_library(
133 name = "index",
Austin Schuh20b2b082019-09-11 20:42:56 -0700134 srcs = ["index.cc"],
Austin Schuh25356e22019-09-11 19:27:07 -0700135 hdrs = ["index.h"],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700136 visibility = ["//visibility:public"],
Brian Silverman177567e2020-08-12 19:51:33 -0700137 deps = [
138 "@com_github_google_glog//:glog",
139 ],
Austin Schuh25356e22019-09-11 19:27:07 -0700140)
141
142cc_test(
143 name = "index_test",
144 srcs = ["index_test.cc"],
145 deps = [
146 ":index",
147 "//aos/testing:googletest",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700148 "@com_github_google_glog//:glog",
Austin Schuh25356e22019-09-11 19:27:07 -0700149 ],
150)
Austin Schuh20b2b082019-09-11 20:42:56 -0700151
152cc_library(
153 name = "lockless_queue",
154 srcs = [
155 "lockless_queue.cc",
156 "lockless_queue_memory.h",
157 ],
158 hdrs = ["lockless_queue.h"],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700159 visibility = ["//visibility:public"],
Austin Schuh20b2b082019-09-11 20:42:56 -0700160 deps = [
161 ":aos_sync",
Brian Silvermana1652f32020-01-29 20:41:44 -0800162 ":data_alignment",
Austin Schuh20b2b082019-09-11 20:42:56 -0700163 ":index",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700164 "//aos:realtime",
Austin Schuh20b2b082019-09-11 20:42:56 -0700165 "//aos/time",
166 "//aos/util:compiler_memory_barrier",
Austin Schuhf257f3c2019-10-27 21:00:43 -0700167 "@com_github_google_glog//:glog",
Brian Silverman0eaa1da2020-08-12 20:03:52 -0700168 "@com_google_absl//absl/types:span",
Austin Schuh20b2b082019-09-11 20:42:56 -0700169 ],
170)
171
172cc_library(
173 name = "queue_racer",
174 testonly = True,
175 srcs = [
176 "queue_racer.cc",
177 ],
178 hdrs = [
179 "queue_racer.h",
180 ],
181 deps = [
182 ":lockless_queue",
183 "//aos:event",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700184 "//aos/testing:googletest",
Austin Schuh20b2b082019-09-11 20:42:56 -0700185 ],
186)
187
188cc_test(
189 name = "lockless_queue_test",
190 timeout = "eternal",
191 srcs = ["lockless_queue_test.cc"],
192 deps = [
193 ":lockless_queue",
194 ":queue_racer",
195 ":signalfd",
196 "//aos:event",
197 "//aos/events:epoll",
198 "//aos/libc:aos_strsignal",
199 "//aos/testing:googletest",
200 "//aos/testing:prevent_exit",
Austin Schuh20b2b082019-09-11 20:42:56 -0700201 ],
202)
203
204cc_test(
205 name = "lockless_queue_death_test",
206 srcs = ["lockless_queue_death_test.cc"],
207 deps = [
208 ":lockless_queue",
209 ":queue_racer",
210 ":signalfd",
211 "//aos:event",
212 "//aos/events:epoll",
213 "//aos/libc:aos_strsignal",
214 "//aos/testing:googletest",
215 "//aos/testing:prevent_exit",
216 "//aos/testing:test_logging",
217 ],
218)
Brian Silvermana1652f32020-01-29 20:41:44 -0800219
220cc_library(
221 name = "data_alignment",
222 hdrs = [
223 "data_alignment.h",
224 ],
225 visibility = ["//visibility:public"],
226 deps = [
227 "@com_github_google_glog//:glog",
228 ],
229)
Austin Schuh5af45eb2019-09-16 20:54:18 -0700230
231cc_library(
232 name = "latency_lib",
233 srcs = ["latency_lib.cc"],
234 hdrs = ["latency_lib.h"],
235 deps = [
236 "//aos:realtime",
237 "//aos/logging",
238 "//aos/time",
239 "@com_github_google_glog//:glog",
240 ],
241)
242
243cc_binary(
244 name = "signal_stress",
245 srcs = [
246 "signal_stress.cc",
247 ],
248 deps = [
249 ":latency_lib",
250 "//aos:init",
251 "//aos/events:epoll",
252 "@com_github_gflags_gflags//:gflags",
253 ],
254)
255
256cc_binary(
257 name = "futex_latency",
258 srcs = [
259 "futex_latency.cc",
260 ],
261 deps = [
262 ":latency_lib",
263 "//aos:condition",
264 "//aos:init",
265 "//aos/mutex",
266 "@com_github_gflags_gflags//:gflags",
267 ],
268)
269
270cc_binary(
271 name = "named_pipe_latency",
272 srcs = [
273 "named_pipe_latency.cc",
274 ],
275 deps = [
276 ":latency_lib",
277 "//aos:init",
278 "//aos/events:epoll",
279 "@com_github_gflags_gflags//:gflags",
280 ],
281)
282
283cc_binary(
284 name = "eventfd_latency",
285 srcs = [
286 "eventfd_latency.cc",
287 ],
288 deps = [
289 ":latency_lib",
290 "//aos:init",
291 "//aos/events:epoll",
292 "@com_github_gflags_gflags//:gflags",
293 ],
294)
Brian Silverman001f24d2020-08-12 19:33:20 -0700295
296cc_binary(
297 name = "print_lockless_queue_memory",
298 visibility = ["//visibility:public"],
299 srcs = [
300 "print_lockless_queue_memory.cc",
301 ],
302 deps = [
303 ":lockless_queue",
304 ],
305)