[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 5/7] mini-os: Moved arch-specific xenbus code under arch
From: Karim Raslan <karim.allah.ahmed@xxxxxxxxx> Signed-off-by: Karim Allah Ahmed <karim.allah.ahmed@xxxxxxxxx> [talex5@xxxxxxxxx: separated from big ARM commit] Signed-off-by: Thomas Leonard <talex5@xxxxxxxxx> --- extras/mini-os/arch/x86/xenbus.c | 10 ++++++++++ extras/mini-os/xenbus/xenbus.c | 17 +++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 extras/mini-os/arch/x86/xenbus.c diff --git a/extras/mini-os/arch/x86/xenbus.c b/extras/mini-os/arch/x86/xenbus.c new file mode 100644 index 0000000..5cda78d --- /dev/null +++ b/extras/mini-os/arch/x86/xenbus.c @@ -0,0 +1,10 @@ +#include <mini-os/os.h> +#include <mini-os/mm.h> +#include <mini-os/xmalloc.h> +#include <xen/xen.h> +#include <xen/io/xs_wire.h> + +void arch_init_xenbus(struct xenstore_domain_interface **xenstore_buf, uint32_t *store_evtchn) { + *xenstore_buf = mfn_to_virt(start_info.store_mfn); + *store_evtchn = start_info.store_evtchn; +} diff --git a/extras/mini-os/xenbus/xenbus.c b/extras/mini-os/xenbus/xenbus.c index 934f23b..d995020 100644 --- a/extras/mini-os/xenbus/xenbus.c +++ b/extras/mini-os/xenbus/xenbus.c @@ -27,6 +27,7 @@ #include <mini-os/wait.h> #include <xen/io/xs_wire.h> #include <mini-os/spinlock.h> +#include <mini-os/hypervisor.h> #include <mini-os/xmalloc.h> #define min(x,y) ({ \ @@ -43,6 +44,7 @@ #endif static struct xenstore_domain_interface *xenstore_buf; +static uint32_t store_evtchn; static DECLARE_WAIT_QUEUE_HEAD(xb_waitq); DECLARE_WAIT_QUEUE_HEAD(xenbus_watch_queue); @@ -325,20 +327,23 @@ static int allocate_xenbus_id(void) return o_probe; } +void arch_init_xenbus(struct xenstore_domain_interface **xenstore_buf, uint32_t *store_evtchn); + /* Initialise xenbus. */ void init_xenbus(void) { int err; DEBUG("init_xenbus called.\n"); - xenstore_buf = mfn_to_virt(start_info.store_mfn); + + arch_init_xenbus(&xenstore_buf, &store_evtchn); + create_thread("xenstore", xenbus_thread_func, NULL); DEBUG("buf at %p.\n", xenstore_buf); - err = bind_evtchn(start_info.store_evtchn, + err = bind_evtchn(store_evtchn, xenbus_evtchn_handler, NULL); - unmask_evtchn(start_info.store_evtchn); - printk("xenbus initialised on irq %d mfn %#lx\n", - err, start_info.store_mfn); + unmask_evtchn(store_evtchn); + printk("xenbus initialised on event %d\n", err); } void fini_xenbus(void) @@ -420,7 +425,7 @@ static void xb_write(int type, int req_id, xenbus_transaction_t trans_id, xenstore_buf->req_prod += len; /* Send evtchn to notify remote */ - notify_remote_via_evtchn(start_info.store_evtchn); + notify_remote_via_evtchn(store_evtchn); } /* Send a mesasge to xenbus, in the same fashion as xb_write, and -- 2.0.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |