Begin to abstract the ABI.

Different architectures or standards will require different ABIs but
this should be hidden from the Hafnium API. Further changes are required
to support returning multiple registers but that will be hidden from the
API.

Change-Id: I35bc674c35bd4bb4c8c30e02f1075024a3bc44db
diff --git a/inc/hf/api.h b/inc/hf/api.h
index de27c35..514ac2f 100644
--- a/inc/hf/api.h
+++ b/inc/hf/api.h
@@ -19,13 +19,17 @@
 #include "hf/cpu.h"
 #include "hf/vm.h"
 
+#include "vmapi/hf/call.h"
+
 int64_t api_vm_get_count(void);
 int64_t api_vcpu_get_count(uint32_t vm_id);
-int64_t api_vcpu_run(uint32_t vm_id, uint32_t vcpu_idx, struct vcpu **next);
+struct hf_vcpu_run_return api_vcpu_run(uint32_t vm_id, uint32_t vcpu_idx,
+				       struct vcpu **next);
 int64_t api_vm_configure(ipaddr_t send, ipaddr_t recv);
 
 int64_t api_mailbox_send(uint32_t vm_id, size_t size, struct vcpu **next);
-int64_t api_mailbox_receive(bool block, struct vcpu **next);
+struct hf_mailbox_receive_return api_mailbox_receive(bool block,
+						     struct vcpu **next);
 int64_t api_mailbox_clear(void);
 
 struct vcpu *api_wait_for_interrupt(void);