Using custom call for push relinquish.
Bug: 132420445
Change-Id: I694250cea48aef9ae4083f1687e1db83d6508d9f
diff --git a/inc/vmapi/hf/abi.h b/inc/vmapi/hf/abi.h
index ed004b7..2802479 100644
--- a/inc/vmapi/hf/abi.h
+++ b/inc/vmapi/hf/abi.h
@@ -35,6 +35,9 @@
#define HF_SPCI_RUN_WAIT_FOR_INTERRUPT 0xff09
#define HF_SPCI_RUN_WAKE_UP 0xff0a
+/* Custom SPCI-like call for relinquishing memory in the push model. */
+#define HF_SPCI_MEM_RELINQUISH 0xffab
+
/* This matches what Trusty and its ATF module currently use. */
#define HF_DEBUG_LOG 0xbd000000
diff --git a/inc/vmapi/hf/call.h b/inc/vmapi/hf/call.h
index 5d217da..ad26137 100644
--- a/inc/vmapi/hf/call.h
+++ b/inc/vmapi/hf/call.h
@@ -158,6 +158,15 @@
.arg5 = handle});
}
+static inline struct spci_value hf_spci_mem_relinquish(
+ uint32_t remaining_fragment_count, uint32_t length, uint32_t handle)
+{
+ return spci_call((struct spci_value){.func = HF_SPCI_MEM_RELINQUISH,
+ .arg3 = remaining_fragment_count,
+ .arg4 = length,
+ .arg5 = handle});
+}
+
/**
* Called by secondary VMs to receive a message. This will block until a message
* is received.