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