+\r
+\r
+//\r
+// XENBUS protocol\r
+//\r
+\r
+XENSTORE_STATUS\r
+EFIAPI\r
+XenBusWaitForWatch (\r
+ IN XENBUS_PROTOCOL *This,\r
+ IN VOID *Token\r
+ )\r
+{\r
+ return XenStoreWaitWatch (Token);\r
+}\r
+\r
+XENSTORE_STATUS\r
+EFIAPI\r
+XenBusXenStoreRead (\r
+ IN XENBUS_PROTOCOL *This,\r
+ IN XENSTORE_TRANSACTION Transaction,\r
+ IN CONST CHAR8 *Node,\r
+ OUT VOID **Value\r
+ )\r
+{\r
+ return XenStoreRead (Transaction, This->Node, Node, NULL, Value);\r
+}\r
+\r
+XENSTORE_STATUS\r
+EFIAPI\r
+XenBusXenStoreBackendRead (\r
+ IN XENBUS_PROTOCOL *This,\r
+ IN XENSTORE_TRANSACTION Transaction,\r
+ IN CONST CHAR8 *Node,\r
+ OUT VOID **Value\r
+ )\r
+{\r
+ return XenStoreRead (Transaction, This->Backend, Node, NULL, Value);\r
+}\r
+\r
+XENSTORE_STATUS\r
+EFIAPI\r
+XenBusXenStoreRemove (\r
+ IN XENBUS_PROTOCOL *This,\r
+ IN XENSTORE_TRANSACTION Transaction,\r
+ IN const char *Node\r
+ )\r
+{\r
+ return XenStoreRemove (Transaction, This->Node, Node);\r
+}\r
+\r
+XENSTORE_STATUS\r
+EFIAPI\r
+XenBusXenStoreTransactionStart (\r
+ IN XENBUS_PROTOCOL *This,\r
+ OUT XENSTORE_TRANSACTION *Transaction\r
+ )\r
+{\r
+ return XenStoreTransactionStart (Transaction);\r
+}\r
+\r
+XENSTORE_STATUS\r
+EFIAPI\r
+XenBusXenStoreTransactionEnd (\r
+ IN XENBUS_PROTOCOL *This,\r
+ IN XENSTORE_TRANSACTION Transaction,\r
+ IN BOOLEAN Abort\r
+ )\r
+{\r
+ return XenStoreTransactionEnd (Transaction, Abort);\r
+}\r
+\r
+XENSTORE_STATUS\r
+EFIAPI\r
+XenBusXenStoreSPrint (\r
+ IN XENBUS_PROTOCOL *This,\r
+ IN XENSTORE_TRANSACTION Transaction,\r
+ IN CONST CHAR8 *DirectoryPath,\r
+ IN CONST CHAR8 *Node,\r
+ IN CONST CHAR8 *FormatString,\r
+ ...\r
+ )\r
+{\r
+ VA_LIST Marker;\r
+ XENSTORE_STATUS Status;\r
+\r
+ VA_START (Marker, FormatString);\r
+ Status = XenStoreVSPrint (Transaction, DirectoryPath, Node, FormatString, Marker);\r
+ VA_END (Marker);\r
+\r
+ return Status;\r
+}\r
+\r
+XENSTORE_STATUS\r
+EFIAPI\r
+XenBusRegisterWatch (\r
+ IN XENBUS_PROTOCOL *This,\r
+ IN CONST CHAR8 *Node,\r
+ OUT VOID **Token\r
+ )\r
+{\r
+ return XenStoreRegisterWatch (This->Node, Node, (XENSTORE_WATCH **) Token);\r
+}\r
+\r
+XENSTORE_STATUS\r
+EFIAPI\r
+XenBusRegisterWatchBackend (\r
+ IN XENBUS_PROTOCOL *This,\r
+ IN CONST CHAR8 *Node,\r
+ OUT VOID **Token\r
+ )\r
+{\r
+ return XenStoreRegisterWatch (This->Backend, Node, (XENSTORE_WATCH **) Token);\r
+}\r
+\r
+VOID\r
+EFIAPI\r
+XenBusUnregisterWatch (\r
+ IN XENBUS_PROTOCOL *This,\r
+ IN VOID *Token\r
+ )\r
+{\r
+ XenStoreUnregisterWatch ((XENSTORE_WATCH *) Token);\r
+}\r