blob: 91b050c9cdb0cbd4d26db516e684cba5b2fff46e [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
68cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080069 name = "queue",
70 srcs = [
71 "queue.cc",
72 ],
73 hdrs = [
74 "queue.h",
75 ],
76 linkopts = [
77 "-lrt",
78 ],
Alex Perrycb7da4b2019-08-28 19:35:56 -070079 visibility = ["//visibility:public"],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080080 deps = [
81 ":core_lib",
82 ":shared_mem",
John Park33858a32018-09-28 23:05:48 -070083 "//aos:condition",
Brian Silverman16a923c2018-10-31 19:40:51 -070084 "//aos/mutex",
John Park33858a32018-09-28 23:05:48 -070085 "//aos/util:options",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080086 ],
Brian Silverman100534c2015-09-07 15:51:23 -040087)
88
89cc_test(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080090 name = "raw_queue_test",
91 srcs = [
92 "raw_queue_test.cc",
93 ],
94 deps = [
95 ":core_lib",
96 ":queue",
John Park33858a32018-09-28 23:05:48 -070097 "//aos:die",
John Park33858a32018-09-28 23:05:48 -070098 "//aos/logging",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080099 "//aos/testing:googletest",
100 "//aos/testing:prevent_exit",
101 "//aos/testing:test_shm",
Brian Silverman16a923c2018-10-31 19:40:51 -0700102 "//aos/time",
103 "//aos/util:death_test_log_implementation",
104 "//aos/util:thread",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800105 ],
Brian Silverman100534c2015-09-07 15:51:23 -0400106)
107
108cc_test(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800109 name = "ipc_stress_test",
110 srcs = [
111 "ipc_stress_test.cc",
112 ],
113 tags = [
114 "manual",
115 ],
116 deps = [
117 ":core_lib",
John Park33858a32018-09-28 23:05:48 -0700118 "//aos:die",
John Park33858a32018-09-28 23:05:48 -0700119 "//aos/libc:aos_strsignal",
120 "//aos/libc:dirname",
121 "//aos/logging",
Brian Silverman16a923c2018-10-31 19:40:51 -0700122 "//aos/mutex",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800123 "//aos/testing:googletest",
124 "//aos/testing:test_shm",
Brian Silverman16a923c2018-10-31 19:40:51 -0700125 "//aos/time",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800126 ],
Brian Silverman100534c2015-09-07 15:51:23 -0400127)
128
129cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800130 name = "scoped_message_ptr",
131 deps = [
132 ":queue",
133 ],
Brian Silverman100534c2015-09-07 15:51:23 -0400134)
Brian Silvermane4d8b282015-12-24 13:44:48 -0800135
136cc_binary(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800137 name = "ipc_comparison",
138 srcs = [
139 "ipc_comparison.cc",
140 ],
141 deps = [
142 ":queue",
John Park33858a32018-09-28 23:05:48 -0700143 "//aos:condition",
144 "//aos:event",
Brian Silverman16a923c2018-10-31 19:40:51 -0700145 "//aos:init",
John Park33858a32018-09-28 23:05:48 -0700146 "//aos/logging",
147 "//aos/logging:implementations",
Brian Silverman16a923c2018-10-31 19:40:51 -0700148 "//aos/mutex",
149 "@com_github_gflags_gflags//:gflags",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800150 ],
Brian Silvermane4d8b282015-12-24 13:44:48 -0800151)
Austin Schuh6c590f82019-09-11 19:23:12 -0700152
153cc_library(
154 name = "signalfd",
155 srcs = [
156 "signalfd.cc",
157 ],
158 hdrs = [
159 "signalfd.h",
160 ],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700161 visibility = ["//visibility:public"],
Austin Schuh6c590f82019-09-11 19:23:12 -0700162 deps = [
Alex Perrycb7da4b2019-08-28 19:35:56 -0700163 "@com_github_google_glog//:glog",
Austin Schuh6c590f82019-09-11 19:23:12 -0700164 ],
165)
Austin Schuh25356e22019-09-11 19:27:07 -0700166
Brian Silverman407cc532019-11-03 11:40:56 -0800167cc_test(
168 name = "signalfd_test",
169 srcs = [
170 "signalfd_test.cc",
171 ],
172 deps = [
173 ":signalfd",
174 "//aos/testing:googletest",
175 "//aos/testing:test_logging",
176 "@com_github_google_glog//:glog",
177 ],
178)
179
Austin Schuh25356e22019-09-11 19:27:07 -0700180cc_library(
181 name = "index",
Austin Schuh20b2b082019-09-11 20:42:56 -0700182 srcs = ["index.cc"],
Austin Schuh25356e22019-09-11 19:27:07 -0700183 hdrs = ["index.h"],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700184 visibility = ["//visibility:public"],
Austin Schuh25356e22019-09-11 19:27:07 -0700185)
186
187cc_test(
188 name = "index_test",
189 srcs = ["index_test.cc"],
190 deps = [
191 ":index",
192 "//aos/testing:googletest",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700193 "@com_github_google_glog//:glog",
Austin Schuh25356e22019-09-11 19:27:07 -0700194 ],
195)
Austin Schuh20b2b082019-09-11 20:42:56 -0700196
197cc_library(
198 name = "lockless_queue",
199 srcs = [
200 "lockless_queue.cc",
201 "lockless_queue_memory.h",
202 ],
203 hdrs = ["lockless_queue.h"],
Alex Perrycb7da4b2019-08-28 19:35:56 -0700204 visibility = ["//visibility:public"],
Austin Schuh20b2b082019-09-11 20:42:56 -0700205 deps = [
206 ":aos_sync",
Brian Silvermana1652f32020-01-29 20:41:44 -0800207 ":data_alignment",
Austin Schuh20b2b082019-09-11 20:42:56 -0700208 ":index",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700209 "//aos:realtime",
Austin Schuh20b2b082019-09-11 20:42:56 -0700210 "//aos/time",
211 "//aos/util:compiler_memory_barrier",
Austin Schuhf257f3c2019-10-27 21:00:43 -0700212 "@com_github_google_glog//:glog",
Austin Schuh20b2b082019-09-11 20:42:56 -0700213 ],
214)
215
216cc_library(
217 name = "queue_racer",
218 testonly = True,
219 srcs = [
220 "queue_racer.cc",
221 ],
222 hdrs = [
223 "queue_racer.h",
224 ],
225 deps = [
226 ":lockless_queue",
227 "//aos:event",
Alex Perrycb7da4b2019-08-28 19:35:56 -0700228 "//aos/testing:googletest",
Austin Schuh20b2b082019-09-11 20:42:56 -0700229 ],
230)
231
232cc_test(
233 name = "lockless_queue_test",
234 timeout = "eternal",
235 srcs = ["lockless_queue_test.cc"],
236 deps = [
237 ":lockless_queue",
238 ":queue_racer",
239 ":signalfd",
240 "//aos:event",
241 "//aos/events:epoll",
242 "//aos/libc:aos_strsignal",
243 "//aos/testing:googletest",
244 "//aos/testing:prevent_exit",
Austin Schuh20b2b082019-09-11 20:42:56 -0700245 ],
246)
247
248cc_test(
249 name = "lockless_queue_death_test",
250 srcs = ["lockless_queue_death_test.cc"],
251 deps = [
252 ":lockless_queue",
253 ":queue_racer",
254 ":signalfd",
255 "//aos:event",
256 "//aos/events:epoll",
257 "//aos/libc:aos_strsignal",
258 "//aos/testing:googletest",
259 "//aos/testing:prevent_exit",
260 "//aos/testing:test_logging",
261 ],
262)
Brian Silvermana1652f32020-01-29 20:41:44 -0800263
264cc_library(
265 name = "data_alignment",
266 hdrs = [
267 "data_alignment.h",
268 ],
269 visibility = ["//visibility:public"],
270 deps = [
271 "@com_github_google_glog//:glog",
272 ],
273)