Lines Matching refs:dom

35 static elf_negerrnoval check_elf_kernel(struct xc_dom_image *dom, bool verbose)  in check_elf_kernel()  argument
37 if ( dom->kernel_blob == NULL ) in check_elf_kernel()
40 xc_dom_panic(dom->xch, XC_INTERNAL_ERROR, in check_elf_kernel()
45 if ( !elf_is_elfbinary(dom->kernel_blob, dom->kernel_size) ) in check_elf_kernel()
48 xc_dom_panic(dom->xch, XC_INVALID_KERNEL, in check_elf_kernel()
55 static elf_negerrnoval xc_dom_probe_hvm_kernel(struct xc_dom_image *dom) in xc_dom_probe_hvm_kernel() argument
61 if ( dom->container_type != XC_DOM_HVM_CONTAINER ) in xc_dom_probe_hvm_kernel()
64 rc = check_elf_kernel(dom, 0); in xc_dom_probe_hvm_kernel()
68 rc = elf_init(&elf, dom->kernel_blob, dom->kernel_size); in xc_dom_probe_hvm_kernel()
77 rc = elf_xen_parse(&elf, &dom->parms); in xc_dom_probe_hvm_kernel()
84 static elf_errorstatus xc_dom_parse_hvm_kernel(struct xc_dom_image *dom) in xc_dom_parse_hvm_kernel() argument
93 rc = check_elf_kernel(dom, 1); in xc_dom_parse_hvm_kernel()
97 elf = xc_dom_malloc(dom, sizeof(*elf)); in xc_dom_parse_hvm_kernel()
100 dom->private_loader = elf; in xc_dom_parse_hvm_kernel()
101 rc = elf_init(elf, dom->kernel_blob, dom->kernel_size); in xc_dom_parse_hvm_kernel()
102 xc_elf_set_logfile(dom->xch, elf, 1); in xc_dom_parse_hvm_kernel()
105 xc_dom_panic(dom->xch, XC_INVALID_KERNEL, "%s: corrupted ELF image", in xc_dom_parse_hvm_kernel()
112 xc_dom_panic(dom->xch, XC_INVALID_KERNEL, "%s: ELF image is not 32bit", in xc_dom_parse_hvm_kernel()
121 dom->kernel_seg.vstart = elf->pstart; in xc_dom_parse_hvm_kernel()
122 dom->kernel_seg.vend = elf->pend; in xc_dom_parse_hvm_kernel()
124 dom->guest_type = "hvm-3.0-x86_32"; in xc_dom_parse_hvm_kernel()
132 static int module_init_one(struct xc_dom_image *dom, in module_init_one() argument
141 if ( xc_dom_alloc_segment(dom, &seg, name, 0, module->length) ) in module_init_one()
143 dest = xc_dom_seg_to_ptr(dom, &seg); in module_init_one()
153 assert(dom->mmio_start > 0 && dom->mmio_start < UINT32_MAX); in module_init_one()
154 if ( module->guest_addr_out > dom->mmio_start || in module_init_one()
155 module->guest_addr_out + module->length > dom->mmio_start ) in module_init_one()
168 static int modules_init(struct xc_dom_image *dom) in modules_init() argument
172 rc = module_init_one(dom, &dom->system_firmware_module, in modules_init()
176 rc = module_init_one(dom, &dom->acpi_modules[0], "ACPI module"); in modules_init()
178 rc = module_init_one(dom, &dom->smbios_module, "SMBIOS module"); in modules_init()
186 static elf_errorstatus xc_dom_load_hvm_kernel(struct xc_dom_image *dom) in xc_dom_load_hvm_kernel() argument
188 struct elf_binary *elf = dom->private_loader; in xc_dom_load_hvm_kernel()
203 dom->xch, dom->guest_domid, pages << PAGE_SHIFT, in xc_dom_load_hvm_kernel()
213 elf->dest_size = pages * XC_DOM_PAGE_SIZE(dom); in xc_dom_load_hvm_kernel()
224 rc = modules_init(dom); in xc_dom_load_hvm_kernel()
231 dom->parms.phys_entry = elf_uval(elf, elf->ehdr, e_entry); in xc_dom_load_hvm_kernel()