函数名称
| 说明
|
pgd_alloc( mm )
| 分配一个新的页全局目录。如果 PAE 被激活,它还分配三个对应用户态线性地址的子页中间目录。参数 mm( 内存描述符的地址 ) 在 80x86 构架上被忽略。
|
pgd_free( pgd)
| 释放页全局目录中地址为 pgd 的项。如果 PAE 被激活,它还将释放用户态线性地址对应的三个页中间目录。
|
pud_alloc(mm, pgd, addr)
| 在两级或三级分页系统下,这个函数什么也不做:它仅仅返回页全局目录项 pgd 的线性地址。
|
pud_free(x)
| 在两级或三级分页系统下,这个宏什么也不做。
|
pmd_alloc(mm, pud, addr)
| 定义这个函数以使普通三级分页系统可以为线性地址 addr 分配一个新的页中间目录。如果 PAE 未被激活,这个函数只是返回输入参数 pud 的值,也就是说,返回页全局目录中目录项的地址。如果 PAE 被激活,该函数返回线性地址 addr 对应的页中间目录项的线性地址。参数 mm 被忽略。
|
pmd_free(x)
| 该函数什么也不做,因为页中间目录的分配和释放是随同它们的父全局目录一同进行的。
|
pte_alloc_map(mm, pmd, addr)
| 接收页中间目录项的地址 pmd 和线性地址 addr 作为参数,并返回与 addr 对应的页表项的地址。如果页中间目录项为空,该函数通过调用函数 pte_alloc_one() 分配一个新页表。如果分配了一个新页表, addr 对应的项就被创建,同时 User/Supervisor标志被设置为 1 。如果页表被保存在高端内存,则内核建立一个临时内核映射,并用 pte_unmap 对它进行释放。
|
pte_alloc_kernel(mm, pmd, addr)
| 如果与地址 addr 相关的页中间目录项 pmd 为空,该函数分配一个新页表。然后返回与 addr 相关的页表项的线性地址。该函数仅被主内核页表使用。
|
pte_free(pte)
| 释放与页描述符指针 pte 相关的页表。
|
pte_free_kernel(pte)
| 等价于 pte_free() ,但由主内核页表使用。
|
clear_page_range(mmu, start,end)
| 从线性地址 start 到 end 通过反复释放页表和清除页中间目录项来清除进程页表的内容。
|