blob: 6ee8ab4b548053e4fd018af8b042d9f1a7bb1b2f [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",
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)