Basic memory sharing.

The introduces the basic functionality for memory sharing. The API used
to invoke memory sharing is a placeholder while we decide on what the
proper interface should look like.

Change-Id: Ia5c2c224119d896b3fc2294b0828626ec325e1e7
diff --git a/inc/vmapi/hf/abi.h b/inc/vmapi/hf/abi.h
index 451de41..4716f01 100644
--- a/inc/vmapi/hf/abi.h
+++ b/inc/vmapi/hf/abi.h
@@ -94,6 +94,26 @@
 	uint32_t size;
 };
 
+enum hf_share {
+	/**
+	 * Relinquish ownership and access to the memory and pass them to the
+	 * recipient.
+	 */
+	HF_MEMORY_GIVE,
+
+	/**
+	 * Retain ownership of the memory but relinquish access to the
+	 * recipient.
+	 */
+	HF_MEMORY_LEND,
+
+	/**
+	 * Retain ownership and access but additionally allow access to the
+	 * recipient.
+	 */
+	HF_MEMORY_SHARE,
+};
+
 /**
  * Encode an hf_vcpu_run_return struct in the 64-bit packing ABI.
  */