195511698STamas Ban /* 295511698STamas Ban * Copyright (c) 2022, Arm Limited. All rights reserved. 395511698STamas Ban * 495511698STamas Ban * SPDX-License-Identifier: BSD-3-Clause 595511698STamas Ban * 695511698STamas Ban */ 795511698STamas Ban 8*e249e569STamas Ban #ifndef __RSE_COMMS_PROTOCOL_POINTER_ACCESS_H__ 9*e249e569STamas Ban #define __RSE_COMMS_PROTOCOL_POINTER_ACCESS_H__ 1095511698STamas Ban 1195511698STamas Ban #include <cdefs.h> 1295511698STamas Ban 1395511698STamas Ban #include <psa/client.h> 1495511698STamas Ban 15*e249e569STamas Ban struct __packed rse_pointer_access_msg_t { 1695511698STamas Ban psa_handle_t handle; 1795511698STamas Ban uint32_t ctrl_param; 1895511698STamas Ban uint32_t io_sizes[PSA_MAX_IOVEC]; 1995511698STamas Ban uint64_t host_ptrs[PSA_MAX_IOVEC]; 2095511698STamas Ban }; 2195511698STamas Ban 22*e249e569STamas Ban struct __packed rse_pointer_access_reply_t { 2395511698STamas Ban int32_t return_val; 2495511698STamas Ban uint32_t out_sizes[PSA_MAX_IOVEC]; 2595511698STamas Ban }; 2695511698STamas Ban 27*e249e569STamas Ban psa_status_t rse_protocol_pointer_access_serialize_msg(psa_handle_t handle, 2895511698STamas Ban int16_t type, 2995511698STamas Ban const psa_invec *in_vec, 3095511698STamas Ban uint8_t in_len, 3195511698STamas Ban const psa_outvec *out_vec, 3295511698STamas Ban uint8_t out_len, 33*e249e569STamas Ban struct rse_pointer_access_msg_t *msg, 3495511698STamas Ban size_t *msg_len); 3595511698STamas Ban 36*e249e569STamas Ban psa_status_t rse_protocol_pointer_access_deserialize_reply(psa_outvec *out_vec, 3795511698STamas Ban uint8_t out_len, 3895511698STamas Ban psa_status_t *return_val, 39*e249e569STamas Ban const struct rse_pointer_access_reply_t *reply, 4095511698STamas Ban size_t reply_size); 4195511698STamas Ban 42*e249e569STamas Ban #endif /* __RSE_COMMS_PROTOCOL_POINTER_ACCESS_H__ */ 43