test(spm): use ffa_helpers for ivy partition

Allow the ivy partition to use the ffa_helpers functions.

To achieve this we create a common struct for ff-a calls that is
used for both parameters and returns, this aligns with the Hafnium
implementation. We can then use preprocessor macros to pick either
SMC or SVC as the conduit depending on the exception level the SP
is running at.

Change-Id: Ic9525baabcf40d15545b6f6d504cf954373f08f9
Signed-off-by: Daniel Boulby <daniel.boulby@arm.com>
diff --git a/spm/cactus/cactus_tests/cactus_test_ffa.c b/spm/cactus/cactus_tests/cactus_test_ffa.c
index bca3984..7e6bf9e 100644
--- a/spm/cactus/cactus_tests/cactus_test_ffa.c
+++ b/spm/cactus/cactus_tests/cactus_test_ffa.c
@@ -71,7 +71,7 @@
 static void ffa_features_test(void)
 {
 	const char *test_features = "FFA Features interface";
-	smc_ret_values ffa_ret;
+	struct ffa_value ffa_ret;
 	unsigned int expected_ret;
 	const struct ffa_features_test *ffa_feature_test_target;
 	unsigned int i, test_target_size =
@@ -109,7 +109,7 @@
 
 	announce_test_start(test_wrong_uuid);
 
-	smc_ret_values ret = ffa_partition_info_get(uuid);
+	struct ffa_value ret = ffa_partition_info_get(uuid);
 	expect(ffa_func_id(ret), FFA_ERROR);
 	expect(ffa_error_code(ret), FFA_ERROR_INVALID_PARAMETER);
 
@@ -146,8 +146,10 @@
 
 	announce_test_start(test_ffa_version);
 
-	smc_ret_values ret = ffa_version(MAKE_FFA_VERSION(FFA_MAJOR, FFA_MINOR));
-	spm_version = (uint32_t)ret.ret0;
+	struct ffa_value ret = ffa_version(MAKE_FFA_VERSION(FFA_MAJOR,
+							    FFA_MINOR));
+
+	spm_version = (uint32_t)ret.fid;
 
 	bool ffa_version_compatible =
 		((spm_version >> FFA_VERSION_MAJOR_SHIFT) == FFA_MAJOR &&
@@ -170,7 +172,7 @@
 	announce_test_start(test_spm_id_get);
 
 	if (spm_version >= MAKE_FFA_VERSION(1, 1)) {
-		smc_ret_values ret = ffa_spm_id_get();
+		struct ffa_value ret = ffa_spm_id_get();
 
 		expect(ffa_func_id(ret), FFA_SUCCESS_SMC32);