/* Last of all, we look at what happens first of all. The very first time the Guest makes a hypercall, we end up here to set things up:  */
static void initialize(struct lg_cpu *cpu)
/* Last of all, we look at what happens first of all. The very first time the Guest makes a hypercall, we end up here to set things up:  */
static void initialize(struct lg_cpu *cpu)
{
	if (cpu->hcall->arg0 != LHCALL_LGUEST_INIT) {
		kill_guest(cpu, "hypercall %li before INIT", cpu->hcall->arg0);
		return;
	}
	if (lguest_arch_init_hypercalls(cpu))
		kill_guest(cpu, "bad guest page %p", cpu->lg->lguest_data);
	if (get_user(cpu->lg->noirq_start, &cpu->lg->lguest_data->noirq_start)
	    || get_user(cpu->lg->noirq_end, &cpu->lg->lguest_data->noirq_end))
		kill_guest(cpu, "bad guest page %p", cpu->lg->lguest_data);
	write_timestamp(cpu);
	page_table_guest_data_init(cpu);
	guest_pagetable_clear_all(cpu);
}