diff options
author | mrj <none@none> | 2007-12-21 14:13:23 -0800 |
---|---|---|
committer | mrj <none@none> | 2007-12-21 14:13:23 -0800 |
commit | 551bc2a66868b5cb5be6b70ab9f55515e77a39a9 (patch) | |
tree | a01e761c9864ea9483c468ced858a0f67edcbf93 /usr/src/uts/common/xen/io/xenbus_comms.c | |
parent | 71a79fe7afa36dcf0de6902c2c6ef432980534d3 (diff) | |
download | illumos-joyent-551bc2a66868b5cb5be6b70ab9f55515e77a39a9.tar.gz |
PSARC 2007/664 Paravirtualized Drivers for Fully Virtualized xVM Domains
6525093 xnb/xnf should use hypervisor based copy for xnb->xnf data path
6608917 members of struct xnf and xnb need unique names
6609324 deadlock trying to own the HAT migrate lock
6609805 still missing XPV_DISALLOW_MIGRATE/XPV_ALLOW_MIGRATE bracketing in hat_i86.c
6616384 xnb's grant ref unmapping is inefficient
6619947 Solaris should provide a PV network driver for xVM HVM environments
6632774 panic setting up xen console
--HG--
rename : usr/src/uts/i86xpv/os/gnttab.c => usr/src/uts/common/xen/os/gnttab.c
rename : usr/src/uts/i86xpv/os/hypercall.c => usr/src/uts/common/xen/os/hypercall.c
rename : usr/src/uts/i86xpv/sys/gnttab.h => usr/src/uts/common/xen/sys/gnttab.h
rename : usr/src/uts/i86xpv/ml/hypersubr.s => usr/src/uts/intel/ia32/ml/hypersubr.s
rename : usr/src/uts/i86xpv/sys/hypervisor.h => usr/src/uts/intel/sys/hypervisor.h
rename : usr/src/uts/i86xpv/sys/xen_errno.h => usr/src/uts/intel/sys/xen_errno.h
Diffstat (limited to 'usr/src/uts/common/xen/io/xenbus_comms.c')
-rw-r--r-- | usr/src/uts/common/xen/io/xenbus_comms.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/usr/src/uts/common/xen/io/xenbus_comms.c b/usr/src/uts/common/xen/io/xenbus_comms.c index ee4c162bf4..e7eb20f166 100644 --- a/usr/src/uts/common/xen/io/xenbus_comms.c +++ b/usr/src/uts/common/xen/io/xenbus_comms.c @@ -59,12 +59,18 @@ #include <sys/types.h> #include <vm/hat.h> #include <vm/as.h> -#include <sys/bootinfo.h> #include <sys/bootconf.h> -#include <vm/kboot_mmu.h> #include <vm/seg_kmem.h> +#ifdef XPV_HVM_DRIVER +#include <sys/pc_mmu.h> +#include <sys/xpv_support.h> +#include <sys/hypervisor.h> +#else +#include <vm/kboot_mmu.h> +#include <sys/bootinfo.h> #include <sys/hypervisor.h> #include <sys/evtchn_impl.h> +#endif #include <sys/condvar.h> #include <sys/mutex.h> #include <sys/atomic.h> @@ -240,10 +246,19 @@ xb_suspend(void) void xb_setup_intr(void) { +#ifdef XPV_HVM_DRIVER + ec_bind_evtchn_to_handler(xen_info->store_evtchn, IPL_XENBUS, + xenbus_intr, NULL); +#else xenbus_irq = ec_bind_evtchn_to_irq(xen_info->store_evtchn); + if (xenbus_irq < 0) { + cmn_err(CE_WARN, "Couldn't bind xenbus event channel"); + return; + } if (!add_avintr(NULL, IPL_XENBUS, (avfunc)xenbus_intr, "xenbus", xenbus_irq, NULL, NULL, NULL, NULL)) cmn_err(CE_WARN, "XENBUS add intr failed\n"); +#endif } /* |