At 03/01/2012 02:13 PM, HATAYAMA Daisuke Wrote: > From: Wen Congyang <we...@cn.fujitsu.com> > Subject: [RFC][PATCH 03/14 v7] target-i386: implement cpu_get_memory_mapping() > Date: Thu, 01 Mar 2012 10:41:47 +0800 > >> +int cpu_get_memory_mapping(MemoryMappingList *list, CPUState *env) >> +{ >> + if (env->cr[4] & CR4_PAE_MASK) { >> +#ifdef TARGET_X86_64 >> + if (env->hflags & HF_LMA_MASK) { >> + target_phys_addr_t pml4e_addr; >> + >> + pml4e_addr = (env->cr[3] & ~0xfff) & env->a20_mask; >> + walk_pml4e(list, pml4e_addr, env->a20_mask); >> + } else >> +#endif >> + { >> + target_phys_addr_t pdpe_addr; >> + >> + pdpe_addr = (env->cr[3] & ~0x1f) & env->a20_mask; >> + walk_pdpe2(list, pdpe_addr, env->a20_mask); >> + } >> + } else { >> + target_phys_addr_t pde_addr; >> + bool pse; >> + >> + pde_addr = (env->cr[3] & ~0xfff) & env->a20_mask; >> + pse = !!(env->cr[4] & CR4_PSE_MASK); >> + walk_pde2(list, pde_addr, env->a20_mask, pse); >> + } >> + >> + return 0; >> +} > > Does this assume paging mode? I don't know qemu very well, but qemu > dump command runs externally to guest machine, so I think the machine > could be in the state with paging disabled where CR4 doesn't refer to > page table as expected.
CR4? I think you want to say CR3. Yes, the guest may be in the state without paging mode. I will fix it. Thanks Wen Congyang > > Thanks. > HATAYAMA, Daisuke > >