Lines Matching refs:dom
41 static int setup_hypercall_page(struct xc_dom_image *dom) in setup_hypercall_page() argument
47 if ( dom->parms.virt_hypercall == -1 ) in setup_hypercall_page()
49 pfn = (dom->parms.virt_hypercall - dom->parms.virt_base) in setup_hypercall_page()
50 >> XC_DOM_PAGE_SHIFT(dom); in setup_hypercall_page()
53 dom->parms.virt_hypercall, pfn); in setup_hypercall_page()
55 domctl.domain = dom->guest_domid; in setup_hypercall_page()
56 domctl.u.hypercall_init.gmfn = xc_dom_p2m(dom, pfn); in setup_hypercall_page()
57 rc = do_domctl(dom->xch, &domctl); in setup_hypercall_page()
59 xc_dom_panic(dom->xch, XC_INTERNAL_ERROR, in setup_hypercall_page()
68 int xc_dom_compat_check(struct xc_dom_image *dom) in xc_dom_compat_check() argument
74 strncpy(xen_caps, dom->xen_caps, XEN_CAPABILITIES_INFO_LEN - 1); in xc_dom_compat_check()
80 match = !strcmp(dom->guest_type, item); in xc_dom_compat_check()
87 xc_dom_panic(dom->xch, XC_INVALID_KERNEL, in xc_dom_compat_check()
89 __FUNCTION__, dom->guest_type); in xc_dom_compat_check()
94 int xc_dom_boot_xen_init(struct xc_dom_image *dom, xc_interface *xch, uint32_t domid) in xc_dom_boot_xen_init() argument
96 dom->xch = xch; in xc_dom_boot_xen_init()
97 dom->guest_domid = domid; in xc_dom_boot_xen_init()
99 dom->xen_version = xc_version(xch, XENVER_version, NULL); in xc_dom_boot_xen_init()
100 if ( xc_version(xch, XENVER_capabilities, &dom->xen_caps) < 0 ) in xc_dom_boot_xen_init()
106 dom->xen_version >> 16, dom->xen_version & 0xff, in xc_dom_boot_xen_init()
107 dom->xen_caps); in xc_dom_boot_xen_init()
111 int xc_dom_boot_mem_init(struct xc_dom_image *dom) in xc_dom_boot_mem_init() argument
115 DOMPRINTF_CALLED(dom->xch); in xc_dom_boot_mem_init()
117 rc = dom->arch_hooks->meminit(dom); in xc_dom_boot_mem_init()
120 xc_dom_panic(dom->xch, XC_OUT_OF_MEMORY, in xc_dom_boot_mem_init()
129 void *xc_dom_boot_domU_map(struct xc_dom_image *dom, xen_pfn_t pfn, in xc_dom_boot_domU_map() argument
132 int page_shift = XC_DOM_PAGE_SHIFT(dom); in xc_dom_boot_domU_map()
138 entries = xc_dom_malloc(dom, count * sizeof(privcmd_mmap_entry_t)); in xc_dom_boot_domU_map()
141 xc_dom_panic(dom->xch, XC_INTERNAL_ERROR, in xc_dom_boot_domU_map()
148 entries[i].mfn = xc_dom_p2m(dom, pfn + i); in xc_dom_boot_domU_map()
150 ptr = xc_map_foreign_ranges(dom->xch, dom->guest_domid, in xc_dom_boot_domU_map()
156 xc_dom_panic(dom->xch, XC_INTERNAL_ERROR, in xc_dom_boot_domU_map()
166 int xc_dom_boot_image(struct xc_dom_image *dom) in xc_dom_boot_image() argument
171 DOMPRINTF_CALLED(dom->xch); in xc_dom_boot_image()
174 if ( (rc = dom->arch_hooks->bootearly(dom)) != 0 ) in xc_dom_boot_image()
178 rc = xc_domain_getinfo(dom->xch, dom->guest_domid, 1, &info); in xc_dom_boot_image()
181 xc_dom_panic(dom->xch, XC_INTERNAL_ERROR, in xc_dom_boot_image()
185 if ( rc == 0 || info.domid != dom->guest_domid ) in xc_dom_boot_image()
187 xc_dom_panic(dom->xch, XC_INTERNAL_ERROR, in xc_dom_boot_image()
190 rc, info.domid, dom->guest_domid); in xc_dom_boot_image()
193 dom->shared_info_mfn = info.shared_info_frame; in xc_dom_boot_image()
196 if ( !xc_dom_compat_check(dom) ) in xc_dom_boot_image()
200 if ( (rc = xc_dom_update_guest_p2m(dom)) != 0 ) in xc_dom_boot_image()
202 if ( dom->arch_hooks->setup_pgtables ) in xc_dom_boot_image()
203 if ( (rc = dom->arch_hooks->setup_pgtables(dom)) != 0 ) in xc_dom_boot_image()
207 if ( dom->arch_hooks->start_info ) in xc_dom_boot_image()
208 dom->arch_hooks->start_info(dom); in xc_dom_boot_image()
211 if ( (rc = setup_hypercall_page(dom)) != 0 ) in xc_dom_boot_image()
213 xc_dom_log_memory_footprint(dom); in xc_dom_boot_image()
216 if ( (rc = dom->arch_hooks->bootlate(dom)) != 0 ) in xc_dom_boot_image()
220 if ( (rc = dom->arch_hooks->vcpu(dom)) != 0 ) in xc_dom_boot_image()
222 xc_dom_unmap_all(dom); in xc_dom_boot_image()
238 setup.dom = domid; in xc_dom_gnttab_setup()
384 int xc_dom_gnttab_init(struct xc_dom_image *dom) in xc_dom_gnttab_init() argument
386 if ( xc_dom_translated(dom) ) { in xc_dom_gnttab_init()
387 return xc_dom_gnttab_hvm_seed(dom->xch, dom->guest_domid, in xc_dom_gnttab_init()
388 dom->console_pfn, dom->xenstore_pfn, in xc_dom_gnttab_init()
389 dom->console_domid, dom->xenstore_domid); in xc_dom_gnttab_init()
391 return xc_dom_gnttab_seed(dom->xch, dom->guest_domid, in xc_dom_gnttab_init()
392 xc_dom_p2m(dom, dom->console_pfn), in xc_dom_gnttab_init()
393 xc_dom_p2m(dom, dom->xenstore_pfn), in xc_dom_gnttab_init()
394 dom->console_domid, dom->xenstore_domid); in xc_dom_gnttab_init()