1 /*
2  * Copyright (c) 2022, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #ifndef __RSS_COMMS_PROTOCOL_POINTER_ACCESS_H__
9 #define __RSS_COMMS_PROTOCOL_POINTER_ACCESS_H__
10 
11 #include <cdefs.h>
12 
13 #include <psa/client.h>
14 
15 struct __packed rss_pointer_access_msg_t {
16 	psa_handle_t handle;
17 	uint32_t ctrl_param;
18 	uint32_t io_sizes[PSA_MAX_IOVEC];
19 	uint64_t host_ptrs[PSA_MAX_IOVEC];
20 };
21 
22 struct __packed rss_pointer_access_reply_t {
23 	int32_t return_val;
24 	uint32_t out_sizes[PSA_MAX_IOVEC];
25 };
26 
27 psa_status_t rss_protocol_pointer_access_serialize_msg(psa_handle_t handle,
28 						       int16_t type,
29 						       const psa_invec *in_vec,
30 						       uint8_t in_len,
31 						       const psa_outvec *out_vec,
32 						       uint8_t out_len,
33 						       struct rss_pointer_access_msg_t *msg,
34 						       size_t *msg_len);
35 
36 psa_status_t rss_protocol_pointer_access_deserialize_reply(psa_outvec *out_vec,
37 							   uint8_t out_len,
38 							   psa_status_t *return_val,
39 							   const struct rss_pointer_access_reply_t *reply,
40 							   size_t reply_size);
41 
42 #endif /* __RSS_COMMS_PROTOCOL_POINTER_ACCESS_H__ */
43