Use attributes rather than header for legacy memory sharing.

This removes the architected message header.

Bug: 132420445
Change-Id: Id568f379be194bca552506a470355c018a611c2b
diff --git a/src/api.c b/src/api.c
index 210359b..d7e1eac 100644
--- a/src/api.c
+++ b/src/api.c
@@ -1002,35 +1002,22 @@
 	}
 
 	/* Handle legacy memory sharing messages. */
-	if ((attributes & SPCI_MSG_SEND_LEGACY_MEMORY_MASK) ==
-	    SPCI_MSG_SEND_LEGACY_MEMORY) {
+	if ((attributes & SPCI_MSG_SEND_LEGACY_MEMORY_MASK) != 0) {
 		/*
 		 * Buffer holding the internal copy of the shared memory
 		 * regions.
 		 */
-		struct spci_architected_message_header
-			*architected_message_replica =
-				(struct spci_architected_message_header *)
-					cpu_get_buffer(current->cpu->id);
+		uint8_t *message_replica = cpu_get_buffer(current->cpu->id);
 		uint32_t message_buffer_size =
 			cpu_get_buffer_size(current->cpu->id);
 
-		struct spci_architected_message_header *architected_header =
-			(struct spci_architected_message_header *)from_msg;
-
 		if (size > message_buffer_size) {
 			ret = spci_error(SPCI_INVALID_PARAMETERS);
 			goto out;
 		}
 
-		if (size < sizeof(struct spci_architected_message_header)) {
-			ret = spci_error(SPCI_INVALID_PARAMETERS);
-			goto out;
-		}
-
 		/* Copy the architected message into the internal buffer. */
-		memcpy_s(architected_message_replica, message_buffer_size,
-			 architected_header, size);
+		memcpy_s(message_replica, message_buffer_size, from_msg, size);
 
 		/*
 		 * Note that architected_message_replica is passed as the third
@@ -1043,7 +1030,8 @@
 		 */
 		ret = spci_msg_handle_architected_message(
 			vm_to_from_lock.vm1, vm_to_from_lock.vm2,
-			architected_message_replica, size, &api_page_pool);
+			(struct spci_memory_region *)message_replica, size,
+			attributes, &api_page_pool);
 
 		if (ret.func != SPCI_SUCCESS_32) {
 			goto out;