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_messaging.h"
8 
expect_sp_msg_wait(const struct sp_msg * msg,sp_result result)9 void expect_sp_msg_wait(const struct sp_msg *msg, sp_result result)
10 {
11 	mock()
12 		.expectOneCall("sp_msg_wait")
13 		.withOutputParameterReturning("msg", msg, sizeof(*msg))
14 		.andReturnValue(result);
15 }
16 
sp_msg_wait(struct sp_msg * msg)17 sp_result sp_msg_wait(struct sp_msg *msg)
18 {
19 	return mock()
20 		.actualCall("sp_msg_wait")
21 		.withOutputParameter("msg", msg)
22 		.returnIntValue();
23 }
24 
expect_sp_msg_send_direct_req(const struct sp_msg * req,const struct sp_msg * resp,sp_result result)25 void expect_sp_msg_send_direct_req(const struct sp_msg *req,
26 				   const struct sp_msg *resp,
27 				   sp_result result)
28 {
29 	mock()
30 		.expectOneCall("sp_msg_send_direct_req")
31 		.withMemoryBufferParameter("req", (const unsigned char *)req, sizeof(*req))
32 		.withOutputParameterReturning("resp", resp, sizeof(*resp))
33 		.andReturnValue(result);
34 }
35 
sp_msg_send_direct_req(const struct sp_msg * req,struct sp_msg * resp)36 sp_result sp_msg_send_direct_req(const struct sp_msg *req, struct sp_msg *resp)
37 {
38 	return mock()
39 		.actualCall("sp_msg_send_direct_req")
40 		.withMemoryBufferParameter("req", (const unsigned char *)req, sizeof(*req))
41 		.withOutputParameter("resp", resp)
42 		.returnIntValue();
43 }
44 
expect_sp_msg_send_direct_resp(const struct sp_msg * resp,const struct sp_msg * req,sp_result result)45 void expect_sp_msg_send_direct_resp(const struct sp_msg *resp,
46 				    const struct sp_msg *req,
47 				    sp_result result)
48 {
49 	mock()
50 		.expectOneCall("sp_msg_send_direct_resp")
51 		.withMemoryBufferParameter("resp", (const unsigned char *)resp, sizeof(*resp))
52 		.withOutputParameterReturning("req", req, sizeof(*req))
53 		.andReturnValue(result);
54 }
55 
sp_msg_send_direct_resp(const struct sp_msg * resp,struct sp_msg * req)56 sp_result sp_msg_send_direct_resp(const struct sp_msg *resp,
57 				  struct sp_msg *req)
58 {
59 	return mock()
60 		.actualCall("sp_msg_send_direct_resp")
61 		.withMemoryBufferParameter("resp", (const unsigned char *)resp, sizeof(*resp))
62 		.withOutputParameter("req", req)
63 		.returnIntValue();
64 }
65 
66 #if FFA_DIRECT_MSG_ROUTING_EXTENSION
expect_sp_msg_send_rc_req(const struct sp_msg * req,const struct sp_msg * resp,sp_result result)67 void expect_sp_msg_send_rc_req(const struct sp_msg *req,
68 			       const struct sp_msg *resp,
69 			       sp_result result)
70 {
71 	mock()
72 		.expectOneCall("sp_msg_send_rc_req")
73 		.withMemoryBufferParameter("req", (const unsigned char *)req, sizeof(*req))
74 		.withOutputParameterReturning("resp", resp, sizeof(*resp))
75 		.andReturnValue(result);
76 }
77 
sp_msg_send_rc_req(const struct sp_msg * req,struct sp_msg * resp)78 sp_result sp_msg_send_rc_req(const struct sp_msg *req, struct sp_msg *resp)
79 {
80 	return mock()
81 		.actualCall("sp_msg_send_rc_req")
82 		.withMemoryBufferParameter("req", (const unsigned char *)req, sizeof(*req))
83 		.withOutputParameter("resp", resp)
84 		.returnIntValue();
85 }
86 #endif /* FFA_DIRECT_MSG_ROUTING_EXTENSION */
87