static status_t linux_filemode_32bit_init(vmi_instance_t vmi,
addr_t swapper_pg_dir,
addr_t boundary,
addr_t pa, addr_t va)
{
addr_t test = 0;
vmi->page_mode = VMI_PM_LEGACY;
if (VMI_SUCCESS == arch_init(vmi)) {
if ( VMI_SUCCESS == vmi_pagetable_lookup(vmi, swapper_pg_dir - boundary, va, &test) &&
test == pa) {
vmi->kpgd = swapper_pg_dir - boundary;
return VMI_SUCCESS;
}
}
vmi->page_mode = VMI_PM_PAE;
if (VMI_SUCCESS == arch_init(vmi)) {
if ( VMI_SUCCESS == vmi_pagetable_lookup(vmi, swapper_pg_dir - boundary, va, &test) &&
test == pa) {
vmi->kpgd = swapper_pg_dir - boundary;
return VMI_SUCCESS;
}
}
vmi->page_mode = VMI_PM_AARCH32;
if (VMI_SUCCESS == arch_init(vmi)) {
if ( VMI_SUCCESS == vmi_pagetable_lookup(vmi, swapper_pg_dir - boundary, va, &test) &&
test == pa) {
vmi->kpgd = swapper_pg_dir - boundary;
return VMI_SUCCESS;
}
}
return VMI_FAILURE;
}
arch_init()
🌱 Back to Garden
1 item under this folder.