[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 20/27] hw/xen: Hook up emulated implementation for event chann
From: |
David Woodhouse |
Subject: |
[PATCH v2 20/27] hw/xen: Hook up emulated implementation for event channel operations |
Date: |
Tue, 7 Mar 2023 17:17:43 +0000 |
From: David Woodhouse <dwmw@amazon.co.uk>
We provided the backend-facing evtchn functions very early on as part of
the core Xen platform support, since things like timers and xenstore need
to use them.
By what may or may not be an astonishing coincidence, those functions
just *happen* all to have exactly the right function prototypes to slot
into the evtchn_backend_ops table and be called by the PV backends.
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
---
hw/i386/kvm/xen_evtchn.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/hw/i386/kvm/xen_evtchn.c b/hw/i386/kvm/xen_evtchn.c
index 886fbf6b3b..98a7b85047 100644
--- a/hw/i386/kvm/xen_evtchn.c
+++ b/hw/i386/kvm/xen_evtchn.c
@@ -34,6 +34,7 @@
#include "hw/pci/msi.h"
#include "hw/pci/msix.h"
#include "hw/irq.h"
+#include "hw/xen/xen_backend_ops.h"
#include "xen_evtchn.h"
#include "xen_overlay.h"
@@ -278,6 +279,17 @@ static const TypeInfo xen_evtchn_info = {
.class_init = xen_evtchn_class_init,
};
+static struct evtchn_backend_ops emu_evtchn_backend_ops = {
+ .open = xen_be_evtchn_open,
+ .bind_interdomain = xen_be_evtchn_bind_interdomain,
+ .unbind = xen_be_evtchn_unbind,
+ .close = xen_be_evtchn_close,
+ .get_fd = xen_be_evtchn_fd,
+ .notify = xen_be_evtchn_notify,
+ .unmask = xen_be_evtchn_unmask,
+ .pending = xen_be_evtchn_pending,
+};
+
static void gsi_assert_bh(void *opaque)
{
struct vcpu_info *vi = kvm_xen_get_vcpu_info_hva(0);
@@ -318,6 +330,9 @@ void xen_evtchn_create(void)
s->nr_pirq_inuse_words = DIV_ROUND_UP(s->nr_pirqs, 64);
s->pirq_inuse_bitmap = g_new0(uint64_t, s->nr_pirq_inuse_words);
s->pirq = g_new0(struct pirq_info, s->nr_pirqs);
+
+ /* Set event channel functions for backend drivers to use */
+ xen_evtchn_ops = &emu_evtchn_backend_ops;
}
void xen_evtchn_connect_gsis(qemu_irq *system_gsis)
--
2.39.0
- [PATCH v2 08/27] hw/xen: Create initial XenStore nodes, (continued)
- [PATCH v2 08/27] hw/xen: Create initial XenStore nodes, David Woodhouse, 2023/03/07
- [PATCH v2 13/27] hw/xen: Add xenstore operations to allow redirection to internal emulation, David Woodhouse, 2023/03/07
- [PATCH v2 26/27] MAINTAINERS: Add entry for Xen on KVM emulation, David Woodhouse, 2023/03/07
- [PATCH v2 27/27] docs: Update Xen-on-KVM documentation for PV disk support, David Woodhouse, 2023/03/07
- [PATCH v2 04/27] hw/xen: Implement XenStore transactions, David Woodhouse, 2023/03/07
- [PATCH v2 23/27] hw/xen: Map guest XENSTORE_PFN grant in emulated Xenstore, David Woodhouse, 2023/03/07
- [PATCH v2 09/27] hw/xen: Add evtchn operations to allow redirection to internal emulation, David Woodhouse, 2023/03/07
- [PATCH v2 17/27] hw/xen: Build PV backend drivers for CONFIG_XEN_BUS, David Woodhouse, 2023/03/07
- [PATCH v2 03/27] hw/xen: Implement XenStore watches, David Woodhouse, 2023/03/07
- [PATCH v2 15/27] hw/xen: Use XEN_PAGE_SIZE in PV backend drivers, David Woodhouse, 2023/03/07
- [PATCH v2 20/27] hw/xen: Hook up emulated implementation for event channel operations,
David Woodhouse <=
- [PATCH v2 14/27] hw/xen: Move xenstore_store_pv_console_info to xen_console.c, David Woodhouse, 2023/03/07
- [PATCH v2 21/27] hw/xen: Add emulated implementation of grant table operations, David Woodhouse, 2023/03/07
- [PATCH v2 10/27] hw/xen: Add gnttab operations to allow redirection to internal emulation, David Woodhouse, 2023/03/07
- [PATCH v2 18/27] hw/xen: Avoid crash when backend watch fires too early, David Woodhouse, 2023/03/07
- [PATCH v2 22/27] hw/xen: Add emulated implementation of XenStore operations, David Woodhouse, 2023/03/07
- [PATCH v2 11/27] hw/xen: Pass grant ref to gnttab unmap operation, David Woodhouse, 2023/03/07
- [PATCH v2 07/27] hw/xen: Implement core serialize/deserialize methods for xenstore_impl, David Woodhouse, 2023/03/07
- [PATCH v2 06/27] hw/xen: Implement XenStore permissions, David Woodhouse, 2023/03/07
- [PATCH v2 05/27] hw/xen: Watches on XenStore transactions, David Woodhouse, 2023/03/07
- Re: [PATCH v2 00/27] Enable PV backends with Xen/KVM emulation, Paul Durrant, 2023/03/07