mmap.c.txt
来自「linux内核学习笔记 希望想看的人可以很快下载到」· 文本 代码 · 共 24 行
TXT
24 行
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 + =
减小字号Ctrl + -
显示快捷键?