/** @file | |
Event Channel function declaration. | |
Copyright (C) 2014, Citrix Ltd. | |
This program and the accompanying materials | |
are licensed and made available under the terms and conditions of the BSD License | |
which accompanies this distribution. The full text of the license may be found at | |
http://opensource.org/licenses/bsd-license.php | |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
**/ | |
#ifndef __XENBUS_EVENT_CHANNEL_H | |
#define __XENBUS_EVENT_CHANNEL_H | |
#include "XenBusDxe.h" | |
#include <IndustryStandard/Xen/event_channel.h> | |
/** | |
Send an event to the remote end of the channel whose local endpoint is Port. | |
@param Dev A pointer to XENBUS_DEVICE. | |
@param Port The port to notify. | |
@return Return 0 on success, or return the errno code from the hypercall. | |
**/ | |
UINT32 | |
XenEventChannelNotify ( | |
IN XENBUS_DEVICE *Dev, | |
IN evtchn_port_t Port | |
); | |
/* | |
* XenBus protocol | |
*/ | |
/** | |
Allocate a port that can be bind from domain DomainId. | |
@param This A pointer to the XENBUS_PROTOCOL. | |
@param DomainId The domain ID that can bind the newly allocated port. | |
@param Port A pointer to a evtchn_port_t that will contain the newly | |
allocated port. | |
@retval UINT32 The return value from the hypercall, 0 if success. | |
**/ | |
UINT32 | |
EFIAPI | |
XenBusEventChannelAllocate ( | |
IN XENBUS_PROTOCOL *This, | |
IN domid_t DomainId, | |
OUT evtchn_port_t *Port | |
); | |
/** | |
Send an event to the remote end of the channel whose local endpoint is Port. | |
@param This A pointer to the XENBUS_PROTOCOL. | |
@param Port Local port to the the event from. | |
@retval UINT32 The return value from the hypercall, 0 if success. | |
**/ | |
UINT32 | |
EFIAPI | |
XenBusEventChannelNotify ( | |
IN XENBUS_PROTOCOL *This, | |
IN evtchn_port_t Port | |
); | |
/** | |
Close a local event channel Port. | |
@param This A pointer to the XENBUS_PROTOCOL. | |
@param Port The event channel to close. | |
@retval UINT32 The return value from the hypercall, 0 if success. | |
**/ | |
UINT32 | |
EFIAPI | |
XenBusEventChannelClose ( | |
IN XENBUS_PROTOCOL *This, | |
IN evtchn_port_t Port | |
); | |
#endif |