[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC][PATCH 03/14 v7] target-i386: implement cpu_get_me
From: |
HATAYAMA Daisuke |
Subject: |
Re: [Qemu-devel] [RFC][PATCH 03/14 v7] target-i386: implement cpu_get_memory_mapping() |
Date: |
Thu, 01 Mar 2012 15:13:36 +0900 ( ) |
From: Wen Congyang <address@hidden>
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.
Thanks.
HATAYAMA, Daisuke
- Re: [Qemu-devel] [RFC][PATCH 03/14 v7] target-i386: implement cpu_get_memory_mapping(),
HATAYAMA Daisuke <=