refactor(SMCCC): use a macro to check for the SMCCC version

This is similar to other macros that skip the test if a condition is failed.

Change-Id: If8ff8b29473151edf1872636bce9ee0950851c42
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
diff --git a/include/common/test_helpers.h b/include/common/test_helpers.h
index 6f97bb3..fc557ae 100644
--- a/include/common/test_helpers.h
+++ b/include/common/test_helpers.h
@@ -88,6 +88,20 @@
 		}								\
 	} while (0)
 
+#define SKIP_TEST_IF_SMCCC_VERSION_LT(major, minor)				\
+	do {									\
+		smc_args args = {0};						\
+		smc_ret_values ret;						\
+		args.fid = SMCCC_VERSION;					\
+		ret = tftf_smc(&args);						\
+		if ((int32_t)ret.ret0 < MAKE_SMCCC_VERSION(major, minor)) {	\
+			tftf_testcase_printf(					\
+				"Unexpected SMCCC version: 0x%x\n",		\
+			       (int)ret.ret0);					\
+			return TEST_RESULT_SKIPPED;				\
+		}								\
+	} while (0)
+
 #define SKIP_TEST_IF_DIT_NOT_SUPPORTED()					\
 	do {									\
 		if (!is_armv8_4_dit_present()) {				\
diff --git a/tftf/tests/runtime_services/arm_arch_svc/smccc_arch_workaround_1.c b/tftf/tests/runtime_services/arm_arch_svc/smccc_arch_workaround_1.c
index 93abf15..7babcd1 100644
--- a/tftf/tests/runtime_services/arm_arch_svc/smccc_arch_workaround_1.c
+++ b/tftf/tests/runtime_services/arm_arch_svc/smccc_arch_workaround_1.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018-2020, Arm Limited. All rights reserved.
+ * Copyright (c) 2018-2024, Arm Limited. All rights reserved.
  * Copyright (c) 2020, NVIDIA Corporation. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
@@ -13,6 +13,7 @@
 #include <psci.h>
 #include <smccc.h>
 #include <string.h>
+#include <test_helpers.h>
 #include <tftf_lib.h>
 
 #ifdef __aarch64__
@@ -69,21 +70,11 @@
 {
 	smc_args args;
 	smc_ret_values ret;
-	int32_t expected_ver;
 	unsigned int my_midr, midr_mask;
 	int wa_required;
 	size_t i;
 
-	/* Check if SMCCC version is at least v1.1 */
-	expected_ver = MAKE_SMCCC_VERSION(1, 1);
-	memset(&args, 0, sizeof(args));
-	args.fid = SMCCC_VERSION;
-	ret = tftf_smc(&args);
-	if ((int32_t)ret.ret0 < expected_ver) {
-		tftf_testcase_printf("Unexpected SMCCC version: 0x%x\n",
-		       (int)ret.ret0);
-		return TEST_RESULT_SKIPPED;
-	}
+	SKIP_TEST_IF_SMCCC_VERSION_LT(1, 1);
 
 	/* Check if SMCCC_ARCH_WORKAROUND_1 is required or not */
 	memset(&args, 0, sizeof(args));
diff --git a/tftf/tests/runtime_services/arm_arch_svc/smccc_arch_workaround_2.c b/tftf/tests/runtime_services/arm_arch_svc/smccc_arch_workaround_2.c
index 1557e4f..b5aa636 100644
--- a/tftf/tests/runtime_services/arm_arch_svc/smccc_arch_workaround_2.c
+++ b/tftf/tests/runtime_services/arm_arch_svc/smccc_arch_workaround_2.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019-2020, Arm Limited. All rights reserved.
+ * Copyright (c) 2019-2024, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -12,6 +12,7 @@
 #include <psci.h>
 #include <smccc.h>
 #include <string.h>
+#include <test_helpers.h>
 #include <tftf_lib.h>
 
 #ifdef __aarch64__
@@ -40,20 +41,10 @@
 {
 	smc_args args;
 	smc_ret_values ret;
-	int32_t expected_ver;
 	unsigned int my_midr, midr_mask;
 	size_t i;
 
-	/* Check if SMCCC version is at least v1.1 */
-	expected_ver = MAKE_SMCCC_VERSION(1, 1);
-	memset(&args, 0, sizeof(args));
-	args.fid = SMCCC_VERSION;
-	ret = tftf_smc(&args);
-	if ((int32_t)ret.ret0 < expected_ver) {
-		tftf_testcase_printf("Unexpected SMCCC version: 0x%x\n",
-		       (int)ret.ret0);
-		return TEST_RESULT_SKIPPED;
-	}
+	SKIP_TEST_IF_SMCCC_VERSION_LT(1, 1);
 
 	/* Check if SMCCC_ARCH_WORKAROUND_2 is required or not */
 	memset(&args, 0, sizeof(args));
diff --git a/tftf/tests/runtime_services/arm_arch_svc/smccc_arch_workaround_3.c b/tftf/tests/runtime_services/arm_arch_svc/smccc_arch_workaround_3.c
index ebf40a5..77c50cc 100644
--- a/tftf/tests/runtime_services/arm_arch_svc/smccc_arch_workaround_3.c
+++ b/tftf/tests/runtime_services/arm_arch_svc/smccc_arch_workaround_3.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022, Arm Limited. All rights reserved.
+ * Copyright (c) 2022-2024, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -12,6 +12,7 @@
 #include <psci.h>
 #include <smccc.h>
 #include <string.h>
+#include <test_helpers.h>
 #include <tftf_lib.h>
 
 #ifdef __aarch64__
@@ -65,21 +66,11 @@
 {
 	smc_args args;
 	smc_ret_values ret;
-	int32_t expected_ver;
 	unsigned int my_midr, midr_mask;
 	int wa_required;
 	size_t i;
 
-	/* Check if SMCCC version is at least v1.1 */
-	expected_ver = MAKE_SMCCC_VERSION(1, 1);
-	memset(&args, 0, sizeof(args));
-	args.fid = SMCCC_VERSION;
-	ret = tftf_smc(&args);
-	if ((int32_t)ret.ret0 < expected_ver) {
-		tftf_testcase_printf("Unexpected SMCCC version: 0x%x\n",
-		       (int)ret.ret0);
-		return TEST_RESULT_SKIPPED;
-	}
+	SKIP_TEST_IF_SMCCC_VERSION_LT(1, 1);
 
 	/* Check if SMCCC_ARCH_WORKAROUND_3 is required or not */
 	memset(&args, 0, sizeof(args));