static inline uint64_t get_pgd_pae (vmi_instance_t instance, uint32_t vaddr, uint64_t pdpe, addr_t *pgd_entry) { uint64_t value; *pgd_entry = pdba_base_pae(pdpe) + pgd_index_pae(vaddr); dbprint(VMI_DEBUG_PTLOOKUP, "--PAE PTLookup: pgd_entry = 0x%.8"PRIx64"\n", *pgd_entry); if(VMI_FAILURE == vmi_read_64_pa(instance, *pgd_entry, &value)) { value = 0; } return value; }
static inline status_t get_pgd_pae (vmi_instance_t instance, uint32_t vaddr, uint64_t pdpe, addr_t *pgd_entry, addr_t *pgd_value) { *pgd_value = 0; *pgd_entry = pdba_base_pae(pdpe) + pgd_index_pae(vaddr); if(VMI_FAILURE == vmi_read_64_pa(instance, *pgd_entry, pgd_value)) { dbprint(VMI_DEBUG_PTLOOKUP, "--PAE PTLookup: failed to read pgd_entry = 0x%.8"PRIx64"\n", *pgd_entry); return VMI_FAILURE; } dbprint(VMI_DEBUG_PTLOOKUP, "--PAE PTLookup: pgd_entry = 0x%.8"PRIx64", pgd_value = 0x%.8"PRIx64"\n", *pgd_entry, *pgd_value); return VMI_SUCCESS; }