qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: David Woodhouse <dwmw2@infradead.org>
To: Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
	"Paul Durrant" <paul@xen.org>,
	"Joao Martins" <joao.m.martins@oracle.com>,
	"Ankur Arora" <ankur.a.arora@oracle.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Thomas Huth" <thuth@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Juan Quintela" <quintela@redhat.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
	"Claudio Fontana" <cfontana@suse.de>,
	"Julien Grall" <julien@xen.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	armbru@redhat.com, "Stefano Stabellini" <sstabellini@kernel.org>,
	vikram.garhwal@amd.com
Subject: [RFC PATCH v11bis 20/26] hw/xen: Hook up emulated implementation for event channel operations
Date: Thu, 16 Feb 2023 09:44:30 +0000	[thread overview]
Message-ID: <20230216094436.2144978-21-dwmw2@infradead.org> (raw)
In-Reply-To: <20230216094436.2144978-1-dwmw2@infradead.org>

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>
---
 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 3f60461e5c..4442e3ab06 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



  parent reply	other threads:[~2023-02-16  9:47 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-16  9:44 [RFC PATCH v11bis 00/26] Emulated XenStore and PV backend support David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 01/26] hw/xen: Add xenstore wire implementation and implementation stubs David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 02/26] hw/xen: Add basic XenStore tree walk and write/read/directory support David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 03/26] hw/xen: Implement XenStore watches David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 04/26] hw/xen: Implement XenStore transactions David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 05/26] hw/xen: Watches on " David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 06/26] xenstore perms WIP David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 07/26] hw/xen: Implement core serialize/deserialize methods for xenstore_impl David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 08/26] hw/xen: Create initial XenStore nodes David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 09/26] hw/xen: Add evtchn operations to allow redirection to internal emulation David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 10/26] hw/xen: Add gnttab " David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 11/26] hw/xen: Pass grant ref to gnttab unmap operation David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 12/26] hw/xen: Add foreignmem operations to allow redirection to internal emulation David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 13/26] hw/xen: Add xenstore " David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 14/26] hw/xen: Move xenstore_store_pv_console_info to xen_console.c David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 15/26] hw/xen: Use XEN_PAGE_SIZE in PV backend drivers David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 16/26] hw/xen: Rename xen_common.h to xen_native.h David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 17/26] hw/xen: Build PV backend drivers for CONFIG_XEN_BUS David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 18/26] hw/xen: Avoid crash when backend watch fires too early David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 19/26] hw/xen: Only advertise ring-page-order for xen-block if gnttab supports it David Woodhouse
2023-02-16  9:44 ` David Woodhouse [this message]
2023-02-16  9:44 ` [RFC PATCH v11bis 21/26] hw/xen: Add emulated implementation of grant table operations David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 22/26] hw/xen: Add emulated implementation of XenStore operations David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 23/26] hw/xen: Map guest XENSTORE_PFN grant in emulated Xenstore David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 24/26] hw/xen: Implement soft reset for emulated gnttab David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 25/26] hw/xen: Subsume xen_be_register_common() into xen_be_init() David Woodhouse
2023-02-16  9:44 ` [RFC PATCH v11bis 26/26] i386/xen: Initialize Xen backends from pc_basic_device_init() for emulation David Woodhouse
2023-02-16 10:49 ` [RFC PATCH v11bis 00/26] Emulated XenStore and PV backend support Juan Quintela
2023-02-16 13:51   ` David Woodhouse
2023-02-16 14:02     ` Juan Quintela
2023-02-16 15:33       ` David Woodhouse

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230216094436.2144978-21-dwmw2@infradead.org \
    --to=dwmw2@infradead.org \
    --cc=alex.bennee@linaro.org \
    --cc=ankur.a.arora@oracle.com \
    --cc=armbru@redhat.com \
    --cc=cfontana@suse.de \
    --cc=dgilbert@redhat.com \
    --cc=joao.m.martins@oracle.com \
    --cc=julien@xen.org \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mst@redhat.com \
    --cc=paul@xen.org \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=sstabellini@kernel.org \
    --cc=thuth@redhat.com \
    --cc=vikram.garhwal@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).