diff options
author | Anthony PERARD <anthony.perard@citrix.com> | 2014-10-29 06:50:24 +0000 |
---|---|---|
committer | jljusten <jljusten@Edk2> | 2014-10-29 06:50:24 +0000 |
commit | f1259bba3647beb30b7c5e2e7dbe6ba060814912 (patch) | |
tree | 78e297f0945f8f734a193aeb37661c0335bb9c8a /OvmfPkg/XenBusDxe | |
parent | 0fd142464fc5b0fcb8b7fdfac379c1054ec81654 (diff) | |
download | edk2-f1259bba3647beb30b7c5e2e7dbe6ba060814912.tar.gz edk2-f1259bba3647beb30b7c5e2e7dbe6ba060814912.tar.bz2 edk2-f1259bba3647beb30b7c5e2e7dbe6ba060814912.zip |
OvmfPkg/XenBusDxe: Add Event Channel Notify.
This first function is used to notify the other side that there is
something to do. The other side is another Xen domain.
Change in V4:
- Replace the license by the commonly used file header text.
Change in V3:
- Return error code from hypercall instead of ASSERT for
XenEventChannelNotify
- moving event_channel.h to this patch.
Change in V2:
- file header
- coding style
- adding comment to functions
- Licenses
License: This patch adds event_channel.h which is under MIT licence.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16265 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'OvmfPkg/XenBusDxe')
-rw-r--r-- | OvmfPkg/XenBusDxe/EventChannel.c | 33 | ||||
-rw-r--r-- | OvmfPkg/XenBusDxe/EventChannel.h | 36 | ||||
-rw-r--r-- | OvmfPkg/XenBusDxe/XenBusDxe.inf | 2 |
3 files changed, 71 insertions, 0 deletions
diff --git a/OvmfPkg/XenBusDxe/EventChannel.c b/OvmfPkg/XenBusDxe/EventChannel.c new file mode 100644 index 0000000000..c4076c49ea --- /dev/null +++ b/OvmfPkg/XenBusDxe/EventChannel.c @@ -0,0 +1,33 @@ +/** @file
+ Event Channel function implementation.
+
+ Event channel are use to notify of an event that happend in a shared
+ structure for example.
+
+ 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.
+
+**/
+#include "EventChannel.h"
+#include "XenHypercall.h"
+
+UINT32
+XenEventChannelNotify (
+ IN XENBUS_DEVICE *Dev,
+ IN evtchn_port_t Port
+ )
+{
+ INTN ReturnCode;
+ evtchn_send_t Send;
+
+ Send.port = Port;
+ ReturnCode = XenHypercallEventChannelOp (Dev, EVTCHNOP_send, &Send);
+ return ReturnCode;
+}
diff --git a/OvmfPkg/XenBusDxe/EventChannel.h b/OvmfPkg/XenBusDxe/EventChannel.h new file mode 100644 index 0000000000..5f3171d7ca --- /dev/null +++ b/OvmfPkg/XenBusDxe/EventChannel.h @@ -0,0 +1,36 @@ +/** @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
+ );
+
+#endif
diff --git a/OvmfPkg/XenBusDxe/XenBusDxe.inf b/OvmfPkg/XenBusDxe/XenBusDxe.inf index 080e55a9bb..0af1946e26 100644 --- a/OvmfPkg/XenBusDxe/XenBusDxe.inf +++ b/OvmfPkg/XenBusDxe/XenBusDxe.inf @@ -40,6 +40,8 @@ InterlockedCompareExchange16.h
GrantTable.c
GrantTable.h
+ EventChannel.c
+ EventChannel.h
[Sources.IA32]
Ia32/hypercall.S
|