xref: /rk3399_ARM-atf/drivers/arm/sfcp/sfcp_psa/sfcp_psa_protocol/sfcp_psa_protocol_pointer_access.h (revision 2801427972c4b0d4c0165edb509f21186103f21f)
1 /*
2  * Copyright (c) 2026, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #ifndef __SFCP_PSA_PROTOCOL_POINTER_ACCESS_H__
9 #define __SFCP_PSA_PROTOCOL_POINTER_ACCESS_H__
10 
11 #include <cdefs.h>
12 
13 #include "psa/client.h"
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 struct __packed sfcp_pointer_access_msg_t {
20 	psa_handle_t handle;
21 	uint32_t ctrl_param;
22 	uint32_t io_sizes[PSA_MAX_IOVEC];
23 	uint64_t host_ptrs[PSA_MAX_IOVEC];
24 };
25 
26 struct __packed sfcp_pointer_access_reply_t {
27 	int32_t return_val;
28 	uint32_t out_size[PSA_MAX_IOVEC];
29 };
30 
31 struct client_request_t;
32 
33 psa_status_t sfcp_protocol_pointer_access_serialize_msg(
34 	psa_handle_t handle, int16_t type, const psa_invec *in_vec,
35 	uint8_t in_len, const psa_outvec *out_vec, uint8_t out_len,
36 	struct sfcp_pointer_access_msg_t *msg, size_t *msg_len);
37 
38 psa_status_t sfcp_protocol_pointer_access_deserialize_reply(
39 	psa_outvec *out_vec, uint8_t out_len, psa_status_t *return_val,
40 	const struct sfcp_pointer_access_reply_t *reply, size_t reply_size);
41 
42 #ifdef __cplusplus
43 }
44 #endif
45 
46 #endif /* __SFCP_PSA_PROTOCOL_POINTER_ACCESS_H__ */
47