\r
\r
#include <IndustryStandard/Xen/grant_table.h>\r
+#include <IndustryStandard/Xen/event_channel.h>\r
\r
///\r
/// Function prototypes\r
IN grant_ref_t Ref\r
);\r
\r
+/**\r
+ Allocate a port that can be bind from domain DomainId.\r
+\r
+ @param This A pointer to the XENBUS_PROTOCOL.\r
+ @param DomainId The domain ID that can bind the newly allocated port.\r
+ @param Port A pointer to a evtchn_port_t that will contain the newly\r
+ allocated port.\r
+\r
+ @retval UINT32 The return value from the hypercall, 0 if success.\r
+**/\r
+typedef\r
+UINT32\r
+(EFIAPI *XENBUS_EVENT_CHANNEL_ALLOCATE) (\r
+ IN XENBUS_PROTOCOL *This,\r
+ IN domid_t DomainId,\r
+ OUT evtchn_port_t *Port\r
+ );\r
+\r
+/**\r
+ Send an event to the remote end of the channel whose local endpoint is Port.\r
+\r
+ @param This A pointer to the XENBUS_PROTOCOL.\r
+ @param Port Local port to the the event from.\r
+\r
+ @retval UINT32 The return value from the hypercall, 0 if success.\r
+**/\r
+typedef\r
+UINT32\r
+(EFIAPI *XENBUS_EVENT_CHANNEL_NOTIFY) (\r
+ IN XENBUS_PROTOCOL *This,\r
+ IN evtchn_port_t Port\r
+ );\r
+\r
+/**\r
+ Close a local event channel Port.\r
+\r
+ @param This A pointer to the XENBUS_PROTOCOL.\r
+ @param Port The event channel to close.\r
+\r
+ @retval UINT32 The return value from the hypercall, 0 if success.\r
+**/\r
+typedef\r
+UINT32\r
+(EFIAPI *XENBUS_EVENT_CHANNEL_CLOSE) (\r
+ IN XENBUS_PROTOCOL *This,\r
+ IN evtchn_port_t Port\r
+ );\r
+\r
/**\r
Register a XenStore watch.\r
\r
XENBUS_GRANT_ACCESS GrantAccess;\r
XENBUS_GRANT_END_ACCESS GrantEndAccess;\r
\r
+ XENBUS_EVENT_CHANNEL_ALLOCATE EventChannelAllocate;\r
+ XENBUS_EVENT_CHANNEL_NOTIFY EventChannelNotify;\r
+ XENBUS_EVENT_CHANNEL_CLOSE EventChannelClose;\r
+\r
XENBUS_REGISTER_WATCH RegisterWatch;\r
XENBUS_REGISTER_WATCH_BACKEND RegisterWatchBackend;\r
XENBUS_UNREGISTER_WATCH UnregisterWatch;\r