xen_start_info
pcb->pcb_cr3 = xen_start_info.pt_base - KERNBASE;
avail_end = ctob(xen_start_info.nr_pages);
physmem = xen_start_info.nr_pages;
(unsigned long *)xen_start_info.mfn_list;
avail_end = ctob((paddr_t)xen_start_info.nr_pages);
pmap_pa_end = pmap_pa_start + ctob((paddr_t)xen_start_info.nr_pages);
physmem += xen_start_info.nr_pages;
#define xendomain_is_dom0() (xen_start_info.flags & SIF_INITDOMAIN)
#define xendomain_is_privileged() (xen_start_info.flags & SIF_PRIVILEGED)
max_pfn = xen_start_info.nr_pages;
max_pfn = xen_start_info.nr_pages;
esym = xen_start_info.mod_start ?
(void *)xen_start_info.mod_start :
(void *)xen_start_info.mfn_list;
xen_start_info.console.domU.evtchn = xen_hvm_param.value;
xen_start_info.console.domU.mfn = xen_hvm_param.value;
(unsigned long *)xen_start_info.mfn_list;
xen_tables = xen_start_info.pt_base;
our_tables = xen_tables + (xen_start_info.nr_pt_frames * PAGE_SIZE);
xen_start_info.nr_pt_frames, oldcount, false);
__PRINTK(("console %#lx ", xen_start_info.console_mfn));
__PRINTK(("xenstore %#" PRIx32 "\n", xen_start_info.store_mfn));
pte[pl1_pi(page)] = xen_start_info.shared_info;
== xen_start_info.console.domU.mfn) {
pte[pl1_pi(page)] = xen_start_info.console_mfn;
== xen_start_info.store_mfn) {
pte[pl1_pi(page)] = xen_start_info.store_mfn;
d0_consi = (void *)((char *)&xen_start_info +
xen_start_info.console.dom0.info_off);
info_size = xen_start_info.console.dom0.info_size;
strlcpy(xen_start_info.cmd_line, cmd_line,
sizeof(xen_start_info.cmd_line));
xen_start_info.cmd_line[0] = '\0';
xen_start_info.flags = hvm_start_info->flags;
xen_start_info.store_mfn = xen_hvm_param.value;
pmap_kenter_pa((vaddr_t) xenstore_interface, ptoa(xen_start_info.store_mfn),
xen_start_info.store_evtchn = xen_hvm_param.value;
xen_start_info.console.domU.mfn = 0;
xen_start_info.console.domU.evtchn = -1;
xen_start_info.console.domU.mfn = xen_hvm_param.value;
ptoa(xen_start_info.console.domU.mfn),
xen_start_info.console.domU.evtchn = xen_hvm_param.value;
len = strlcpy(_cmd_line, xen_start_info.cmd_line, sizeof(_cmd_line));
xen_start_info.store_mfn =
atop(xpmap_mtop(ptoa(xen_start_info.store_mfn)));
xen_start_info.console_mfn =
atop(xpmap_mtop(ptoa(xen_start_info.console_mfn)));
xen_start_info.shared_info | PTE_W | PTE_P,
if (xen_start_info.nr_pages != physmem) {
pmap_extract_ma(pmap_kernel(), (vaddr_t)&xen_start_info, &mfn);
evtch = xen_start_info.console_evtchn;
evtch = xen_start_info.console_evtchn;
hypervisor_notify_via_evtchn(xen_start_info.console.domU.evtchn);
hypervisor_notify_via_evtchn(xen_start_info.console.domU.evtchn);
hypervisor_notify_via_evtchn(xen_start_info.console.domU.evtchn);
xen_start_info.store_mfn);
xpmap_mtop((paddr_t)xen_start_info.store_mfn << PAGE_SHIFT));
(paddr_t)xen_start_info.store_mfn << PAGE_SHIFT);
hypervisor_notify_via_evtchn(xen_start_info.store_evtchn);
hypervisor_notify_via_evtchn(xen_start_info.store_evtchn);
evtchn = xen_start_info.store_evtchn;
evtchn = xen_start_info.store_evtchn;
if (xen_start_info.store_evtchn == 0)
(long)xen_start_info.store_evtchn);
xen_start_info.store_mfn = ma >> PAGE_SHIFT;
xen_start_info.store_evtchn = op.u.alloc_unbound.port;
if (strstr(xen_start_info.cmd_line, VMMIOSTR) == NULL)
strlcpy(cmdline, xen_start_info.cmd_line, sizeof(cmdline));