Implement SPCI pull model for memory sharing.
Bug: 132420445
Change-Id: Iac21d7949bc54da13a4f25a317f5e83b2727638c
diff --git a/inc/vmapi/hf/call.h b/inc/vmapi/hf/call.h
index 5a1e097..f3557b6 100644
--- a/inc/vmapi/hf/call.h
+++ b/inc/vmapi/hf/call.h
@@ -159,16 +159,28 @@
.arg5 = cookie});
}
-static inline struct spci_value hf_spci_mem_relinquish(uint32_t fragment_length,
- uint32_t length,
- uint32_t cookie)
+static inline struct spci_value spci_mem_retrieve_req(uint32_t fragment_length,
+ uint32_t length,
+ uint32_t cookie)
{
- return spci_call((struct spci_value){.func = HF_SPCI_MEM_RELINQUISH,
+ return spci_call((struct spci_value){.func = SPCI_MEM_RETRIEVE_REQ_32,
.arg3 = fragment_length,
.arg4 = length,
.arg5 = cookie});
}
+static inline struct spci_value spci_mem_relinquish(void)
+{
+ return spci_call((struct spci_value){.func = SPCI_MEM_RELINQUISH_32});
+}
+
+static inline struct spci_value spci_mem_reclaim(uint32_t handle,
+ uint32_t flags)
+{
+ return spci_call((struct spci_value){
+ .func = SPCI_MEM_RECLAIM_32, .arg1 = handle, .arg2 = flags});
+}
+
/**
* Called by secondary VMs to receive a message. This will block until a message
* is received.