[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 20/27] hw/xen: Hook up emulated implementation for event channel o
From: |
David Woodhouse |
Subject: |
[PULL 20/27] hw/xen: Hook up emulated implementation for event channel operations |
Date: |
Tue, 7 Mar 2023 18:27:00 +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
- [PULL 00/27] Enable PV backends with Xen/KVM emulation, David Woodhouse, 2023/03/07
- [PULL 22/27] hw/xen: Add emulated implementation of XenStore operations, David Woodhouse, 2023/03/07
- [PULL 01/27] hw/xen: Add xenstore wire implementation and implementation stubs, David Woodhouse, 2023/03/07
- [PULL 10/27] hw/xen: Add gnttab operations to allow redirection to internal emulation, David Woodhouse, 2023/03/07
- [PULL 05/27] hw/xen: Watches on XenStore transactions, David Woodhouse, 2023/03/07
- [PULL 02/27] hw/xen: Add basic XenStore tree walk and write/read/directory support, David Woodhouse, 2023/03/07
- [PULL 11/27] hw/xen: Pass grant ref to gnttab unmap operation, David Woodhouse, 2023/03/07
- [PULL 13/27] hw/xen: Add xenstore operations to allow redirection to internal emulation, David Woodhouse, 2023/03/07
- [PULL 03/27] hw/xen: Implement XenStore watches, David Woodhouse, 2023/03/07
- [PULL 09/27] hw/xen: Add evtchn operations to allow redirection to internal emulation, David Woodhouse, 2023/03/07
- [PULL 20/27] hw/xen: Hook up emulated implementation for event channel operations,
David Woodhouse <=
- [PULL 19/27] hw/xen: Only advertise ring-page-order for xen-block if gnttab supports it, David Woodhouse, 2023/03/07
- [PULL 24/27] hw/xen: Implement soft reset for emulated gnttab, David Woodhouse, 2023/03/07
- [PULL 07/27] hw/xen: Implement core serialize/deserialize methods for xenstore_impl, David Woodhouse, 2023/03/07
- [PULL 15/27] hw/xen: Use XEN_PAGE_SIZE in PV backend drivers, David Woodhouse, 2023/03/07
- [PULL 06/27] hw/xen: Implement XenStore permissions, David Woodhouse, 2023/03/07
- [PULL 08/27] hw/xen: Create initial XenStore nodes, David Woodhouse, 2023/03/07
- [PULL 14/27] hw/xen: Move xenstore_store_pv_console_info to xen_console.c, David Woodhouse, 2023/03/07
- [PULL 23/27] hw/xen: Map guest XENSTORE_PFN grant in emulated Xenstore, David Woodhouse, 2023/03/07
- [PULL 04/27] hw/xen: Implement XenStore transactions, David Woodhouse, 2023/03/07
- [PULL 21/27] hw/xen: Add emulated implementation of grant table operations, David Woodhouse, 2023/03/07