Using new-style return values for spci_version.

Bug: 132395846
Change-Id: I7d1a926b8dab526b3d8c3c6d06a8c136e5639e5e
diff --git a/inc/vmapi/hf/call.h b/inc/vmapi/hf/call.h
index 9edc542..56bf012 100644
--- a/inc/vmapi/hf/call.h
+++ b/inc/vmapi/hf/call.h
@@ -47,6 +47,7 @@
  * mechanism to call to the hypervisor.
  */
 int64_t hf_call(uint64_t arg0, uint64_t arg1, uint64_t arg2, uint64_t arg3);
+struct spci_value spci_call(struct spci_value args);
 
 /**
  * Returns the VM's own ID.
@@ -274,7 +275,7 @@
 }
 
 /** Obtains the Hafnium's version of the implemented SPCI specification. */
-static inline int64_t spci_version(void)
+static inline struct spci_value spci_version(void)
 {
-	return hf_call(SPCI_VERSION_32, 0, 0, 0);
+	return spci_call((struct spci_value){.func = SPCI_VERSION_32});
 }
diff --git a/inc/vmapi/hf/spci.h b/inc/vmapi/hf/spci.h
index 39fcaf1..0883038 100644
--- a/inc/vmapi/hf/spci.h
+++ b/inc/vmapi/hf/spci.h
@@ -182,6 +182,16 @@
 /** Return type of SPCI functions. */
 /* TODO: Reuse spci_return_t type on all SPCI functions declarations. */
 typedef int32_t spci_return_t;
+struct spci_value {
+	uint64_t func;
+	uint64_t arg1;
+	uint64_t arg2;
+	uint64_t arg3;
+	uint64_t arg4;
+	uint64_t arg5;
+	uint64_t arg6;
+	uint64_t arg7;
+};
 
 /** SPCI common message header. */
 struct spci_message {