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 {