1 // SPDX-License-Identifier: BSD-3-Clause
2 /*
3 * Copyright (c) 2022, Arm Limited. All rights reserved.
4 */
5
6 #include <CppUTestExt/MockSupport.h>
7 #include "mock_sp_memory_management.h"
8
expect_sp_memory_donate(const struct sp_memory_descriptor * descriptor,const struct sp_memory_access_descriptor * acc_desc,const struct sp_memory_region regions[],uint32_t region_count,const uint64_t * handle,sp_result result)9 void expect_sp_memory_donate(const struct sp_memory_descriptor *descriptor,
10 const struct sp_memory_access_descriptor *acc_desc,
11 const struct sp_memory_region regions[],
12 uint32_t region_count, const uint64_t *handle,
13 sp_result result)
14 {
15 mock()
16 .expectOneCall("sp_memory_donate")
17 .withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
18 sizeof(*descriptor))
19 .withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
20 sizeof(*acc_desc))
21 .withMemoryBufferParameter("regions", (const unsigned char *)regions,
22 sizeof(*regions) * region_count)
23 .withUnsignedIntParameter("region_count", region_count)
24 .withOutputParameterReturning("handle", handle, sizeof(*handle))
25 .andReturnValue(result);
26 }
27
sp_memory_donate(struct sp_memory_descriptor * descriptor,struct sp_memory_access_descriptor * acc_desc,struct sp_memory_region regions[],uint32_t region_count,uint64_t * handle)28 sp_result sp_memory_donate(struct sp_memory_descriptor *descriptor,
29 struct sp_memory_access_descriptor *acc_desc,
30 struct sp_memory_region regions[],
31 uint32_t region_count, uint64_t *handle)
32 {
33 return mock()
34 .actualCall("sp_memory_donate")
35 .withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
36 sizeof(*descriptor))
37 .withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
38 sizeof(*acc_desc))
39 .withMemoryBufferParameter("regions", (const unsigned char *)regions,
40 sizeof(*regions) * region_count)
41 .withUnsignedIntParameter("region_count", region_count)
42 .withOutputParameter("handle", handle)
43 .returnIntValue();
44 }
45
expect_sp_memory_donate_dynamic(const struct sp_memory_descriptor * descriptor,const struct sp_memory_access_descriptor * acc_desc,const struct sp_memory_region regions[],uint32_t region_count,const uint64_t * handle,sp_result result)46 void expect_sp_memory_donate_dynamic(const struct sp_memory_descriptor *descriptor,
47 const struct sp_memory_access_descriptor *acc_desc,
48 const struct sp_memory_region regions[],
49 uint32_t region_count, const uint64_t *handle,
50 sp_result result)
51 {
52 mock()
53 .expectOneCall("sp_memory_donate_dynamic")
54 .withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
55 sizeof(*descriptor))
56 .withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
57 sizeof(*acc_desc))
58 .withMemoryBufferParameter("regions", (const unsigned char *)regions,
59 sizeof(*regions) * region_count)
60 .withUnsignedIntParameter("region_count", region_count)
61 .withOutputParameterReturning("handle", handle, sizeof(*handle))
62 .andReturnValue(result);
63 }
64
sp_memory_donate_dynamic(struct sp_memory_descriptor * descriptor,struct sp_memory_access_descriptor * acc_desc,struct sp_memory_region regions[],uint32_t region_count,uint64_t * handle,struct ffa_mem_transaction_buffer * buffer)65 sp_result sp_memory_donate_dynamic(struct sp_memory_descriptor *descriptor,
66 struct sp_memory_access_descriptor *acc_desc,
67 struct sp_memory_region regions[],
68 uint32_t region_count, uint64_t *handle,
69 struct ffa_mem_transaction_buffer *buffer)
70 {
71 if (buffer == NULL) { // LCOV_EXCL_BR_LINE
72 FAIL("ffa_mem_transaction_buffer is NULL"); // LCOV_EXCL_LINE
73 }
74
75 return mock()
76 .actualCall("sp_memory_donate_dynamic")
77 .withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
78 sizeof(*descriptor))
79 .withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
80 sizeof(*acc_desc))
81 .withMemoryBufferParameter("regions", (const unsigned char *)regions,
82 sizeof(*regions) * region_count)
83 .withUnsignedIntParameter("region_count", region_count)
84 .withOutputParameter("handle", handle)
85 .returnIntValue();
86 }
87
expect_sp_memory_donate_dynamic_is_supported(const bool * supported,sp_result result)88 void expect_sp_memory_donate_dynamic_is_supported(const bool *supported, sp_result result)
89 {
90 mock()
91 .expectOneCall("sp_memory_lend_dynamic_is_supported")
92 .withOutputParameterReturning("supported", supported, sizeof(*supported))
93 .andReturnValue(result);
94 }
95
sp_memory_donate_dynamic_is_supported(bool * supported)96 sp_result sp_memory_donate_dynamic_is_supported(bool *supported)
97 {
98 return mock()
99 .actualCall("sp_memory_lend_dynamic_is_supported")
100 .withOutputParameter("supported", supported)
101 .returnIntValue();
102 }
103
expect_sp_memory_lend(const struct sp_memory_descriptor * descriptor,const struct sp_memory_access_descriptor acc_desc[],uint32_t acc_desc_count,const struct sp_memory_region regions[],uint32_t region_count,const uint64_t * handle,sp_result result)104 void expect_sp_memory_lend(const struct sp_memory_descriptor *descriptor,
105 const struct sp_memory_access_descriptor acc_desc[],
106 uint32_t acc_desc_count,
107 const struct sp_memory_region regions[],
108 uint32_t region_count, const uint64_t *handle,
109 sp_result result)
110 {
111 mock()
112 .expectOneCall("sp_memory_lend")
113 .withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
114 sizeof(*descriptor))
115 .withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
116 sizeof(*acc_desc) * acc_desc_count)
117 .withUnsignedIntParameter("acc_desc_count", acc_desc_count)
118 .withMemoryBufferParameter("regions", (const unsigned char *)regions,
119 sizeof(*regions) * region_count)
120 .withUnsignedIntParameter("region_count", region_count)
121 .withOutputParameterReturning("handle", handle, sizeof(*handle))
122 .andReturnValue(result);
123 }
124
sp_memory_lend(struct sp_memory_descriptor * descriptor,struct sp_memory_access_descriptor acc_desc[],uint32_t acc_desc_count,struct sp_memory_region regions[],uint32_t region_count,uint64_t * handle)125 sp_result sp_memory_lend(struct sp_memory_descriptor *descriptor,
126 struct sp_memory_access_descriptor acc_desc[],
127 uint32_t acc_desc_count,
128 struct sp_memory_region regions[],
129 uint32_t region_count, uint64_t *handle)
130 {
131 return mock()
132 .actualCall("sp_memory_lend")
133 .withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
134 sizeof(*descriptor))
135 .withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
136 sizeof(*acc_desc) * acc_desc_count)
137 .withUnsignedIntParameter("acc_desc_count", acc_desc_count)
138 .withMemoryBufferParameter("regions", (const unsigned char *)regions,
139 sizeof(*regions) * region_count)
140 .withUnsignedIntParameter("region_count", region_count)
141 .withOutputParameter("handle", handle)
142 .returnIntValue();
143 }
144
expect_sp_memory_lend_dynamic(const struct sp_memory_descriptor * descriptor,const struct sp_memory_access_descriptor acc_desc[],uint32_t acc_desc_count,const struct sp_memory_region regions[],const uint32_t region_count,const uint64_t * handle,sp_result result)145 void expect_sp_memory_lend_dynamic(const struct sp_memory_descriptor *descriptor,
146 const struct sp_memory_access_descriptor acc_desc[],
147 uint32_t acc_desc_count,
148 const struct sp_memory_region regions[],
149 const uint32_t region_count, const uint64_t *handle,
150 sp_result result)
151 {
152 mock()
153 .expectOneCall("sp_memory_lend")
154 .withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
155 sizeof(*descriptor))
156 .withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
157 sizeof(*acc_desc) * acc_desc_count)
158 .withUnsignedIntParameter("acc_desc_count", acc_desc_count)
159 .withMemoryBufferParameter("regions", (const unsigned char *)regions,
160 sizeof(*regions) * region_count)
161 .withUnsignedIntParameter("region_count", region_count)
162 .withOutputParameterReturning("handle", handle, sizeof(*handle))
163 .andReturnValue(result);
164 }
165
sp_memory_lend_dynamic(struct sp_memory_descriptor * descriptor,struct sp_memory_access_descriptor acc_desc[],uint32_t acc_desc_count,struct sp_memory_region regions[],uint32_t region_count,uint64_t * handle,struct ffa_mem_transaction_buffer * buffer)166 sp_result sp_memory_lend_dynamic(struct sp_memory_descriptor *descriptor,
167 struct sp_memory_access_descriptor acc_desc[],
168 uint32_t acc_desc_count,
169 struct sp_memory_region regions[],
170 uint32_t region_count, uint64_t *handle,
171 struct ffa_mem_transaction_buffer *buffer)
172 {
173 if (buffer == NULL) { // LCOV_EXCL_BR_LINE
174 FAIL("ffa_mem_transaction_buffer is NULL"); // LCOV_EXCL_LINE
175 }
176
177 return mock()
178 .actualCall("sp_memory_lend")
179 .withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
180 sizeof(*descriptor))
181 .withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
182 sizeof(*acc_desc) * acc_desc_count)
183 .withUnsignedIntParameter("acc_desc_count", acc_desc_count)
184 .withMemoryBufferParameter("regions", (const unsigned char *)regions,
185 sizeof(*regions) * region_count)
186 .withUnsignedIntParameter("region_count", region_count)
187 .withOutputParameter("handle", handle)
188 .returnIntValue();
189 }
190
expect_sp_memory_lend_dynamic_is_supported(const bool * supported,sp_result result)191 void expect_sp_memory_lend_dynamic_is_supported(const bool *supported, sp_result result)
192 {
193 mock()
194 .expectOneCall("sp_memory_lend_dynamic_is_supported")
195 .withOutputParameterReturning("supported", supported, sizeof(*supported))
196 .andReturnValue(result);
197 }
198
sp_memory_lend_dynamic_is_supported(bool * supported)199 sp_result sp_memory_lend_dynamic_is_supported(bool *supported)
200 {
201 return mock()
202 .actualCall("sp_memory_lend_dynamic_is_supported")
203 .withOutputParameter("supported", supported)
204 .returnIntValue();
205 }
206
expect_sp_memory_share(const struct sp_memory_descriptor * descriptor,const struct sp_memory_access_descriptor acc_desc[],uint32_t acc_desc_count,const struct sp_memory_region regions[],uint32_t region_count,const uint64_t * handle,sp_result result)207 void expect_sp_memory_share(const struct sp_memory_descriptor *descriptor,
208 const struct sp_memory_access_descriptor acc_desc[],
209 uint32_t acc_desc_count,
210 const struct sp_memory_region regions[],
211 uint32_t region_count, const uint64_t *handle,
212 sp_result result)
213 {
214 mock()
215 .expectOneCall("sp_memory_share")
216 .withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
217 sizeof(*descriptor))
218 .withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
219 sizeof(*acc_desc) * acc_desc_count)
220 .withUnsignedIntParameter("acc_desc_count", acc_desc_count)
221 .withMemoryBufferParameter("regions", (const unsigned char *)regions,
222 sizeof(*regions) * region_count)
223 .withUnsignedIntParameter("region_count", region_count)
224 .withOutputParameterReturning("handle", handle, sizeof(*handle))
225 .andReturnValue(result);
226 }
227
sp_memory_share(struct sp_memory_descriptor * descriptor,struct sp_memory_access_descriptor acc_desc[],uint32_t acc_desc_count,struct sp_memory_region regions[],uint32_t region_count,uint64_t * handle)228 sp_result sp_memory_share(struct sp_memory_descriptor *descriptor,
229 struct sp_memory_access_descriptor acc_desc[],
230 uint32_t acc_desc_count,
231 struct sp_memory_region regions[],
232 uint32_t region_count, uint64_t *handle)
233 {
234 return mock()
235 .actualCall("sp_memory_share")
236 .withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
237 sizeof(*descriptor))
238 .withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
239 sizeof(*acc_desc) * acc_desc_count)
240 .withUnsignedIntParameter("acc_desc_count", acc_desc_count)
241 .withMemoryBufferParameter("regions", (const unsigned char *)regions,
242 sizeof(*regions) * region_count)
243 .withUnsignedIntParameter("region_count", region_count)
244 .withOutputParameter("handle", handle)
245 .returnIntValue();
246 }
247
expect_sp_memory_share_dynamic(const struct sp_memory_descriptor * descriptor,const struct sp_memory_access_descriptor acc_desc[],uint32_t acc_desc_count,const struct sp_memory_region regions[],uint32_t region_count,const uint64_t * handle,sp_result result)248 void expect_sp_memory_share_dynamic(const struct sp_memory_descriptor *descriptor,
249 const struct sp_memory_access_descriptor acc_desc[],
250 uint32_t acc_desc_count,
251 const struct sp_memory_region regions[],
252 uint32_t region_count, const uint64_t *handle,
253 sp_result result)
254 {
255 mock()
256 .expectOneCall("sp_memory_share_dynamic")
257 .withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
258 sizeof(*descriptor))
259 .withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
260 sizeof(*acc_desc) * acc_desc_count)
261 .withUnsignedIntParameter("acc_desc_count", acc_desc_count)
262 .withMemoryBufferParameter("regions", (const unsigned char *)regions,
263 sizeof(*regions) * region_count)
264 .withUnsignedIntParameter("region_count", region_count)
265 .withOutputParameterReturning("handle", handle, sizeof(*handle))
266 .andReturnValue(result);
267 }
268
sp_memory_share_dynamic(struct sp_memory_descriptor * descriptor,struct sp_memory_access_descriptor acc_desc[],uint32_t acc_desc_count,struct sp_memory_region regions[],uint32_t region_count,uint64_t * handle,struct ffa_mem_transaction_buffer * buffer)269 sp_result sp_memory_share_dynamic(struct sp_memory_descriptor *descriptor,
270 struct sp_memory_access_descriptor acc_desc[],
271 uint32_t acc_desc_count,
272 struct sp_memory_region regions[],
273 uint32_t region_count, uint64_t *handle,
274 struct ffa_mem_transaction_buffer *buffer)
275 {
276 if (buffer == NULL) { // LCOV_EXCL_BR_LINE
277 FAIL("ffa_mem_transaction_buffer is NULL"); // LCOV_EXCL_LINE
278 }
279
280 return mock()
281 .actualCall("sp_memory_share_dynamic")
282 .withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
283 sizeof(*descriptor))
284 .withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
285 sizeof(*acc_desc) * acc_desc_count)
286 .withUnsignedIntParameter("acc_desc_count", acc_desc_count)
287 .withMemoryBufferParameter("regions", (const unsigned char *)regions,
288 sizeof(*regions) * region_count)
289 .withUnsignedIntParameter("region_count", region_count)
290 .withOutputParameter("handle", handle)
291 .returnIntValue();
292 }
293
expect_sp_memory_share_dynamic_is_supported(const bool * supported,sp_result result)294 void expect_sp_memory_share_dynamic_is_supported(const bool *supported, sp_result result)
295 {
296 mock()
297 .expectOneCall("sp_memory_share_dynamic_is_supported")
298 .withOutputParameterReturning("supported", supported, sizeof(*supported))
299 .andReturnValue(result);
300 }
301
sp_memory_share_dynamic_is_supported(bool * supported)302 sp_result sp_memory_share_dynamic_is_supported(bool *supported)
303 {
304 return mock()
305 .actualCall("sp_memory_share_dynamic_is_supported")
306 .withOutputParameter("supported", supported)
307 .returnIntValue();
308 }
309
expect_sp_memory_retrieve(const struct sp_memory_descriptor * descriptor,const struct sp_memory_access_descriptor * req_acc_desc,const struct sp_memory_access_descriptor * resp_acc_desc,const struct sp_memory_region in_regions[],const struct sp_memory_region out_regions[],uint32_t in_region_count,const uint32_t * out_region_count,uint64_t handle,sp_result result)310 void expect_sp_memory_retrieve(const struct sp_memory_descriptor *descriptor,
311 const struct sp_memory_access_descriptor *req_acc_desc,
312 const struct sp_memory_access_descriptor *resp_acc_desc,
313 const struct sp_memory_region in_regions[],
314 const struct sp_memory_region out_regions[],
315 uint32_t in_region_count,
316 const uint32_t *out_region_count, uint64_t handle,
317 sp_result result)
318 {
319 mock()
320 .expectOneCall("sp_memory_retrieve")
321 .withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
322 sizeof(descriptor))
323 .withMemoryBufferParameter("req_acc_desc", (const unsigned char *)req_acc_desc,
324 sizeof(*req_acc_desc))
325 .withOutputParameterReturning("resp_acc_desc",
326 (const unsigned char *)resp_acc_desc,
327 sizeof(*resp_acc_desc))
328 .withMemoryBufferParameter("in_regions", (const unsigned char *)in_regions,
329 sizeof(*in_regions) * in_region_count)
330 .withOutputParameterReturning("out_regions", out_regions,
331 sizeof(*out_regions) * *out_region_count)
332 .withUnsignedIntParameter("in_region_count", in_region_count)
333 .withOutputParameterReturning("out_region_count", out_region_count,
334 sizeof(*out_region_count))
335 .withUnsignedLongIntParameter("handle", handle)
336 .andReturnValue(result);
337
338 }
339
sp_memory_retrieve(struct sp_memory_descriptor * descriptor,struct sp_memory_access_descriptor * acc_desc,struct sp_memory_region regions[],uint32_t in_region_count,uint32_t * out_region_count,uint64_t handle)340 sp_result sp_memory_retrieve(struct sp_memory_descriptor *descriptor,
341 struct sp_memory_access_descriptor *acc_desc,
342 struct sp_memory_region regions[],
343 uint32_t in_region_count,
344 uint32_t *out_region_count, uint64_t handle)
345 {
346 return mock()
347 .actualCall("sp_memory_retrieve")
348 .withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
349 sizeof(descriptor))
350 .withMemoryBufferParameter("req_acc_desc", (const unsigned char *)acc_desc,
351 sizeof(*acc_desc))
352 .withOutputParameter("resp_acc_desc", acc_desc)
353 .withMemoryBufferParameter("in_regions", (const unsigned char *)regions,
354 sizeof(*regions) * in_region_count)
355 .withOutputParameter("out_regions", regions)
356 .withUnsignedIntParameter("in_region_count", in_region_count)
357 .withOutputParameter("out_region_count", out_region_count)
358 .withUnsignedLongIntParameter("handle", handle)
359 .returnIntValue();
360 }
361
expect_sp_memory_retrieve_dynamic(const struct sp_memory_descriptor * descriptor,const struct sp_memory_access_descriptor * req_acc_desc,const struct sp_memory_access_descriptor * resp_acc_desc,const struct sp_memory_region in_regions[],const struct sp_memory_region out_regions[],uint32_t in_region_count,const uint32_t * out_region_count,uint64_t handle,sp_result result)362 void expect_sp_memory_retrieve_dynamic(const struct sp_memory_descriptor *descriptor,
363 const struct sp_memory_access_descriptor *req_acc_desc,
364 const struct sp_memory_access_descriptor *resp_acc_desc,
365 const struct sp_memory_region in_regions[],
366 const struct sp_memory_region out_regions[],
367 uint32_t in_region_count,
368 const uint32_t *out_region_count, uint64_t handle,
369 sp_result result)
370 {
371 mock()
372 .expectOneCall("sp_memory_retrieve")
373 .withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
374 sizeof(descriptor))
375 .withMemoryBufferParameter("req_acc_desc", (const unsigned char *)req_acc_desc,
376 sizeof(*req_acc_desc))
377 .withOutputParameterReturning("resp_acc_desc",
378 (const unsigned char *)resp_acc_desc,
379 sizeof(*resp_acc_desc))
380 .withMemoryBufferParameter("in_regions", (const unsigned char *)in_regions,
381 sizeof(*in_regions) * in_region_count)
382 .withOutputParameterReturning("out_regions", out_regions,
383 sizeof(*out_regions) * *out_region_count)
384 .withUnsignedIntParameter("in_region_count", in_region_count)
385 .withOutputParameterReturning("out_region_count", out_region_count,
386 sizeof(*out_region_count))
387 .withUnsignedLongIntParameter("handle", handle)
388 .andReturnValue(result);
389 }
390
391 sp_result
sp_memory_retrieve_dynamic(struct sp_memory_descriptor * descriptor,struct sp_memory_access_descriptor * acc_desc,struct sp_memory_region regions[],uint32_t in_region_count,uint32_t * out_region_count,uint64_t handle,struct ffa_mem_transaction_buffer * buffer)392 sp_memory_retrieve_dynamic(struct sp_memory_descriptor *descriptor,
393 struct sp_memory_access_descriptor *acc_desc,
394 struct sp_memory_region regions[],
395 uint32_t in_region_count, uint32_t *out_region_count,
396 uint64_t handle,
397 struct ffa_mem_transaction_buffer *buffer)
398 {
399 if (buffer == NULL) { // LCOV_EXCL_BR_LINE
400 FAIL("ffa_mem_transaction_buffer is NULL"); // LCOV_EXCL_LINE
401 }
402
403 return mock()
404 .actualCall("sp_memory_retrieve")
405 .withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
406 sizeof(descriptor))
407 .withMemoryBufferParameter("req_acc_desc", (const unsigned char *)acc_desc,
408 sizeof(*acc_desc))
409 .withOutputParameter("resp_acc_desc", acc_desc)
410 .withMemoryBufferParameter("in_regions", (const unsigned char *)regions,
411 sizeof(*regions) * in_region_count)
412 .withOutputParameter("out_regions", regions)
413 .withUnsignedIntParameter("in_region_count", in_region_count)
414 .withOutputParameter("out_region_count", out_region_count)
415 .withUnsignedLongIntParameter("handle", handle)
416 .returnIntValue();
417 }
418
expect_sp_memory_retrieve_dynamic_is_supported(const bool * supported,sp_result result)419 void expect_sp_memory_retrieve_dynamic_is_supported(const bool *supported, sp_result result)
420 {
421 mock()
422 .expectOneCall("sp_memory_retrieve_dynamic_is_supported")
423 .withOutputParameterReturning("supported", supported, sizeof(*supported))
424 .andReturnValue(result);
425 }
426
sp_memory_retrieve_dynamic_is_supported(bool * supported)427 sp_result sp_memory_retrieve_dynamic_is_supported(bool *supported)
428 {
429 return mock()
430 .actualCall("sp_memory_retrieve_dynamic_is_supported")
431 .withOutputParameter("supported", supported)
432 .returnIntValue();
433 }
434
expect_sp_memory_relinquish(uint64_t handle,const uint16_t endpoints[],uint32_t endpoint_count,const struct sp_memory_transaction_flags * flags,sp_result result)435 void expect_sp_memory_relinquish(uint64_t handle, const uint16_t endpoints[],
436 uint32_t endpoint_count,
437 const struct sp_memory_transaction_flags *flags,
438 sp_result result)
439 {
440 mock()
441 .expectOneCall("sp_memory_relinquish")
442 .withUnsignedLongIntParameter("handle", handle)
443 .withMemoryBufferParameter("endpoints", (const unsigned char *)endpoints,
444 sizeof(*endpoints) * endpoint_count)
445 .withMemoryBufferParameter("flags", (const unsigned char *)flags, sizeof(*flags))
446 .andReturnValue(result);
447 }
448
sp_memory_relinquish(uint64_t handle,const uint16_t endpoints[],uint32_t endpoint_count,struct sp_memory_transaction_flags * flags)449 sp_result sp_memory_relinquish(uint64_t handle, const uint16_t endpoints[],
450 uint32_t endpoint_count,
451 struct sp_memory_transaction_flags *flags)
452 {
453 return mock()
454 .actualCall("sp_memory_relinquish")
455 .withUnsignedLongIntParameter("handle", handle)
456 .withMemoryBufferParameter("endpoints", (const unsigned char *)endpoints,
457 sizeof(*endpoints) * endpoint_count)
458 .withMemoryBufferParameter("flags", (const unsigned char *)flags, sizeof(*flags))
459 .returnIntValue();
460 }
461
expect_sp_memory_reclaim(uint64_t handle,uint32_t flags,sp_result result)462 void expect_sp_memory_reclaim(uint64_t handle, uint32_t flags, sp_result result)
463 {
464 mock()
465 .expectOneCall("sp_memory_reclaim")
466 .withUnsignedLongIntParameter("handle", handle)
467 .withUnsignedIntParameter("flags", flags)
468 .andReturnValue(result);
469 }
470
sp_memory_reclaim(uint64_t handle,uint32_t flags)471 sp_result sp_memory_reclaim(uint64_t handle, uint32_t flags)
472 {
473 return mock()
474 .actualCall("sp_memory_reclaim")
475 .withUnsignedLongIntParameter("handle", handle)
476 .withUnsignedIntParameter("flags", flags)
477 .returnIntValue();
478 }
479
expect_sp_memory_permission_get(const void * base_address,const struct sp_mem_perm * mem_perm,sp_result result)480 void expect_sp_memory_permission_get(const void *base_address, const struct sp_mem_perm *mem_perm,
481 sp_result result)
482 {
483 mock()
484 .expectOneCall("sp_memory_permission_set")
485 .withConstPointerParameter("base_address", base_address)
486 .withOutputParameterReturning("mem_perm", mem_perm,
487 sizeof(*mem_perm))
488 .andReturnValue(result);
489 }
490
sp_memory_permission_get(const void * base_address,struct sp_mem_perm * mem_perm)491 sp_result sp_memory_permission_get(const void *base_address,
492 struct sp_mem_perm *mem_perm)
493 {
494 return mock()
495 .actualCall("sp_memory_permission_set")
496 .withConstPointerParameter("base_address", base_address)
497 .withOutputParameter("mem_perm", mem_perm)
498 .returnIntValue();
499 }
500
expect_sp_memory_permission_set(const void * base_address,size_t region_size,const struct sp_mem_perm * mem_perm,sp_result result)501 void expect_sp_memory_permission_set(const void *base_address, size_t region_size,
502 const struct sp_mem_perm *mem_perm, sp_result result)
503 {
504 mock()
505 .expectOneCall("sp_memory_permission_set")
506 .withConstPointerParameter("base_address", base_address)
507 .withUnsignedLongIntParameter("region_size", region_size)
508 .withMemoryBufferParameter("mem_perm", (const unsigned char *)mem_perm,
509 sizeof(*mem_perm))
510 .andReturnValue(result);
511 }
512
sp_memory_permission_set(const void * base_address,size_t region_size,const struct sp_mem_perm * mem_perm)513 sp_result sp_memory_permission_set(const void *base_address, size_t region_size,
514 const struct sp_mem_perm *mem_perm)
515 {
516 return mock()
517 .actualCall("sp_memory_permission_set")
518 .withConstPointerParameter("base_address", base_address)
519 .withUnsignedLongIntParameter("region_size", region_size)
520 .withMemoryBufferParameter("mem_perm", (const unsigned char *)mem_perm,
521 sizeof(*mem_perm))
522 .returnIntValue();
523 }
524