4
是否有任何內核API找到VMA對應於虛擬地址?Linux內核API找到VMA對應一個虛擬地址
例子:如果有0x13000我需要一個像下面
struct vm_area_struct *vma = vma_corresponds_to (0x13000,task);
是否有任何內核API找到VMA對應於虛擬地址?Linux內核API找到VMA對應一個虛擬地址
例子:如果有0x13000我需要一個像下面
struct vm_area_struct *vma = vma_corresponds_to (0x13000,task);
你在linux/mm.h
尋找find_vma
一些函數的地址。
/* Look up the first VMA which satisfies addr < vm_end, NULL if none. */
extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr);
這應該做的伎倆:
struct vm_area_struct *vma = find_vma(task->mm, 0x13000);
if (vma == NULL)
return -EFAULT;
if (0x13000 >= vma->vm_end)
return -EFAULT;
謝謝Jleahy! – Dhyan
@Dhyan您的編輯是正確的,函數定義在v2.0.19中更改。有人拒絕了它,但我自己糾正了它。 – jleahy