xen: xenstore changes to support PVH

For PVH guests the xenstore parameters are fetched from the start_info
struct, just like on PV.

Sponsored by: Citrix Systems R&D
Approved by: gibbs

xen/xenstore/xenstore.c:
 - Fetch xenstore event channel port from start_info.
This commit is contained in:
Roger Pau Monné 2014-06-16 08:47:15 +00:00
parent bd851e636f
commit 9a522f8203

View File

@ -229,13 +229,11 @@ struct xs_softc {
*/
struct sx xenwatch_mutex;
#ifdef XENHVM
/**
* The HVM guest pseudo-physical frame number. This is Xen's mapping
* of the true machine frame number into our "physical address space".
*/
unsigned long gpfn;
#endif
/**
* The event channel for communicating with the
@ -1147,13 +1145,15 @@ xs_attach(device_t dev)
/* Initialize the interface to xenstore. */
struct proc *p;
#ifdef XENHVM
xs.evtchn = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN);
xs.gpfn = hvm_get_parameter(HVM_PARAM_STORE_PFN);
xen_store = pmap_mapdev(xs.gpfn * PAGE_SIZE, PAGE_SIZE);
#else
xs.evtchn = xen_start_info->store_evtchn;
#endif
if (xen_hvm_domain()) {
xs.evtchn = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN);
xs.gpfn = hvm_get_parameter(HVM_PARAM_STORE_PFN);
xen_store = pmap_mapdev(xs.gpfn * PAGE_SIZE, PAGE_SIZE);
} else if (xen_pv_domain()) {
xs.evtchn = HYPERVISOR_start_info->store_evtchn;
} else {
panic("Unknown domain type, cannot initialize xenstore.");
}
TAILQ_INIT(&xs.reply_list);
TAILQ_INIT(&xs.watch_events);