rse_comms: Fix pointer access protocol
Fix the RSE COMM files to properly calculate the size of the message
when the pointer access protocol is selected.
Signed-off-by: Michael Zhao <michael.zhao2@arm.com>
Change-Id: If7534198a884128fb5c5bbdc5e1a1c0bf77eba11
diff --git a/components/rpc/rse_comms/caller/sp/rse_comms_protocol.c b/components/rpc/rse_comms/caller/sp/rse_comms_protocol.c
index 7c2f476..64a0bcc 100644
--- a/components/rpc/rse_comms/caller/sp/rse_comms_protocol.c
+++ b/components/rpc/rse_comms/caller/sp/rse_comms_protocol.c
@@ -92,6 +92,10 @@
break;
case RSE_COMMS_PROTOCOL_POINTER_ACCESS:
+ status = rse_protocol_pointer_access_calculate_msg_len(handle, in_vec, in_len, msg_len);
+ if (status != PSA_SUCCESS)
+ return status;
+ break;
default:
return PSA_ERROR_NOT_SUPPORTED;
}
diff --git a/components/rpc/rse_comms/caller/sp/rse_comms_protocol_pointer_access.c b/components/rpc/rse_comms/caller/sp/rse_comms_protocol_pointer_access.c
index 1bbdc3d..b6f817c 100644
--- a/components/rpc/rse_comms/caller/sp/rse_comms_protocol_pointer_access.c
+++ b/components/rpc/rse_comms/caller/sp/rse_comms_protocol_pointer_access.c
@@ -61,3 +61,19 @@
return PSA_SUCCESS;
}
+
+psa_status_t rse_protocol_pointer_access_calculate_msg_len(psa_handle_t handle,
+ const struct psa_invec *in_vec,
+ uint8_t in_len,
+ size_t *msg_len)
+{
+ (void)handle;
+ (void)in_vec;
+ (void)in_len;
+
+ assert(msg_len != NULL);
+
+ *msg_len = sizeof(struct rse_pointer_access_msg_t);
+
+ return PSA_SUCCESS;
+}
diff --git a/components/rpc/rse_comms/caller/sp/rse_comms_protocol_pointer_access.h b/components/rpc/rse_comms/caller/sp/rse_comms_protocol_pointer_access.h
index 84845a9..5a59477 100644
--- a/components/rpc/rse_comms/caller/sp/rse_comms_protocol_pointer_access.h
+++ b/components/rpc/rse_comms/caller/sp/rse_comms_protocol_pointer_access.h
@@ -39,4 +39,9 @@
const struct rse_pointer_access_reply_t *reply,
size_t reply_size);
+psa_status_t rse_protocol_pointer_access_calculate_msg_len(psa_handle_t handle,
+ const struct psa_invec *in_vec,
+ uint8_t in_len,
+ size_t *msg_len);
+
#endif /* __RSE_COMMS_PROTOCOL_POINTER_ACCESS_H__ */