/* machine_specific_memory_setup - Hook for machine specific memory setup.  */
char* __init xen_memory_setup(void)
/* machine_specific_memory_setup - Hook for machine specific memory setup.  */
char* __init xen_memory_setup(void)
{
	unsigned long max_pfn = xen_start_info->nr_pages;
	max_pfn = min(MAX_DOMAIN_PAGES, max_pfn);
	e820.nr_map = 0;
	e820_add_region(0, PFN_PHYS((u64)max_pfn), E820_RAM);
	e820_add_region(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS,
			E820_RESERVED);
	reserve_early(__pa(xen_start_info->mfn_list),
		      __pa(xen_start_info->pt_base),
			"XEN START INFO");
	sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
	return "Xen";
}