求问:我想实现一个简单的设备驱动程序,使用nopage实现mmap,但编写nopage需要编写fault函数,下面的simple_vma_fault函数是我从网上摘抄的一段,编译时出现错误,原因是struct scullv_dev 未完成,我该怎么写它的结构体呢?谢谢!
struct file_operations mymmap_dev_fops=
{
open:mymmap_dev_open,
release:mymmap_dev_close,
read:mymmap_dev_read,
write:mymmap_dev_write,
mmap:simple_nopage_mmap,
};
static struct vm_operations_struct simple_nopage_vm_ops = {
.open = simple_vma_open,
.close = simple_vma_close,
.fault = simple_vma_fault,
};
static int simple_nopage_mmap(struct file *filp, struct vm_area_struct *vma)
{
unsigned long offset = vma->vm_pgoff << PAGE_SHIFT;
if (offset >= __pa(high_memory) || (filp->f_flags & O_SYNC))
vma->vm_flags |= VM_IO;
vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;
vma->vm_ops = &simple_nopage_vm_ops;
simple_vma_open(vma);
return 0;
}