您的位置:首页 > 编程语言

QEMU中通过GPA得到对应HVA的方法

2015-10-10 15:07 405 查看
直接上代码

int kvm_get_host_virtual_addr(uint64_t paddr,
uint64_t *vaddr)
{
int slot_num = ARRAY_SIZE(kvm_state->slots);
int i;

for (i = 0; i < slot_num; i++) {
KVMSlot *mem = &kvm_state->slots[i];
if (paddr >= mem->start_addr &&
paddr < mem->start_addr + mem->memory_size) {
*vaddr = (uint64_t)mem->ram + paddr - mem->start_addr;
break;
}
}
if (i == slot_num) {
fprintf(stderr, "fail to find target physical addr(%ld) in KVM memory range",
paddr);
return 1;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息