const struct vm_operations_struct vma_vm_ops = {
.open = vma_open,
.close = vma_close,
.mprotect = vma_mprotect,
.pagesize = vma_pagesize,
.access = vma_access,
.fault = vma_fault, // 处理 pte fault
.pfn_mkwrite = vma_pfn_mkwrite,
.huge_fault = vma_huge_fault,
.pmd_fault = vma_pmd_fault, // 处理 pmd fault
};
1,vma_vm_ops 赋值
fd = open(DEV_PATH, O_RDWR | O_SYNC); // 为设备文件赋值 struct file_operations fops;
用户调用 mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, pgoff); // fd 为设备 fd
[1310694.282035