blob: 5f896d6ae665a19fe60d5aeb4929cacfdfca511a [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 ],
Brian Silverman687896e2020-10-01 15:05:38 -070094 linkopts = ["-lrt"],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080095 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",
Brian Silverman0eaa1da2020-08-12 20:03:52 -0700169 "@com_google_absl//absl/types:span",
Austin Schuh20b2b082019-09-11 20:42:56 -0700170 ],
171)
172
173cc_library(
174 name = "queue_racer",
175 testonly = True,
176 srcs = [
177 "queue_racer.cc",
178 ],
179 hdrs = [
180 "queue_racer.h",
181 ],
182 deps = [
183 ":lockless_queue",
184 "//aos:event",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700185 "//aos/testing:googletest",
Austin Schuh20b2b082019-09-11 20:42:56 -0700186 ],
187)
188
189cc_test(
190 name = "lockless_queue_test",
191 timeout = "eternal",
192 srcs = ["lockless_queue_test.cc"],
193 deps = [
194 ":lockless_queue",
195 ":queue_racer",
196 ":signalfd",
197 "//aos:event",
198 "//aos/events:epoll",
199 "//aos/libc:aos_strsignal",
200 "//aos/testing:googletest",
201 "//aos/testing:prevent_exit",
Austin Schuh20b2b082019-09-11 20:42:56 -0700202 ],
203)
204
205cc_test(
206 name = "lockless_queue_death_test",
207 srcs = ["lockless_queue_death_test.cc"],
208 deps = [
209 ":lockless_queue",
210 ":queue_racer",
211 ":signalfd",
212 "//aos:event",
213 "//aos/events:epoll",
214 "//aos/libc:aos_strsignal",
215 "//aos/testing:googletest",
216 "//aos/testing:prevent_exit",
217 "//aos/testing:test_logging",
218 ],
219)
Brian Silvermana1652f32020-01-29 20:41:44 -0800220
221cc_library(
222 name = "data_alignment",
223 hdrs = [
224 "data_alignment.h",
225 ],
226 visibility = ["//visibility:public"],
227 deps = [
228 "@com_github_google_glog//:glog",
229 ],
230)
Austin Schuh5af45eb2019-09-16 20:54:18 -0700231
232cc_library(
233 name = "latency_lib",
234 srcs = ["latency_lib.cc"],
235 hdrs = ["latency_lib.h"],
236 deps = [
237 "//aos:realtime",
238 "//aos/logging",
239 "//aos/time",
240 "@com_github_google_glog//:glog",
241 ],
242)
243
244cc_binary(
245 name = "signal_stress",
246 srcs = [
247 "signal_stress.cc",
248 ],
249 deps = [
250 ":latency_lib",
251 "//aos:init",
252 "//aos/events:epoll",
253 "@com_github_gflags_gflags//:gflags",
254 ],
255)
256
257cc_binary(
258 name = "futex_latency",
259 srcs = [
260 "futex_latency.cc",
261 ],
262 deps = [
263 ":latency_lib",
264 "//aos:condition",
265 "//aos:init",
266 "//aos/mutex",
267 "@com_github_gflags_gflags//:gflags",
268 ],
269)
270
271cc_binary(
272 name = "named_pipe_latency",
273 srcs = [
274 "named_pipe_latency.cc",
275 ],
276 deps = [
277 ":latency_lib",
278 "//aos:init",
279 "//aos/events:epoll",
280 "@com_github_gflags_gflags//:gflags",
281 ],
282)
283
284cc_binary(
285 name = "eventfd_latency",
286 srcs = [
287 "eventfd_latency.cc",
288 ],
289 deps = [
290 ":latency_lib",
291 "//aos:init",
292 "//aos/events:epoll",
293 "@com_github_gflags_gflags//:gflags",
294 ],
295)
Brian Silverman001f24d2020-08-12 19:33:20 -0700296
297cc_binary(
298 name = "print_lockless_queue_memory",
Brian Silverman001f24d2020-08-12 19:33:20 -0700299 srcs = [
300 "print_lockless_queue_memory.cc",
301 ],
Brian Silverman4d6207a2020-09-18 15:26:52 -0700302 visibility = ["//visibility:public"],
Brian Silverman001f24d2020-08-12 19:33:20 -0700303 deps = [
304 ":lockless_queue",
305 ],
306)