📄 mmap.c.txt
字号:
any problems, send mails to sindybear@163.com
相关文件
/linux/mm.h
(1)unsigned long do_mmap_pgoff(struct file * file, unsigned long addr, unsigned long len,
unsigned long prot, unsigned long flags, unsigned long pgoff)
struct mm_struct * mm = current->mm; //得到当前进程的mm结构
…… //进行一系列的检测
if (len > TASK_SIZE) //TASK_SIZE是0xC0000000,也就是用户和内核的区分线
return -EINVAL;
addr = get_unmapped_area(file, addr, len, pgoff, flags);//得到一个没有映射的虚拟地址
//长度必须能够容纳len长度
…… //进行一系列的检测
vma->vm_mm = mm;
vma->vm_start = addr;
vma->vm_end = addr + len;
…… //对vma结构进行一系列的初始化
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -