Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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;
}