1/*2* These are used to make use of C type-checking..3*/4#ifCONFIG_X86_PAE5typedefstruct{ unsignedlongpte_low, pte_high; } pte_t;6typedefstruct{ unsignedlonglongpmd; } pmd_t;7typedefstruct{ unsignedlonglongpgd; } pgd_t;8#definepte_val(x) ((x).pte_low | ((unsigned long long...
Example: pte_t etc. opaque objects that you can only access using the proper accessor functions. Note Opaqueness and accessor functions are not good in themselves. The reason we have them for things like pte_t etc. is that there really is absolutelyzeroportably accessible information there. b....
PTE:是一个页对齐的数组,第一项称为一个页表项,由pte_t类型表示。一个pte_t包含了数据页的物理地址。 static int try_to_unmap_one(struct page *page, struct vm_area_struct *vma) { struct mm_struct *mm = vma->vm_mm; unsigned long address; pgd_t *pgd; pud_t *pud; pmd_t *pmd; pte...
}staticinlinepte_tnative_make_pte(pteval_tval){return(pte_t) { .pte = val }; }staticinlinepteval_tnative_pte_val(pte_tpte){returnpte.pte; }staticinlinepteval_tpte_flags(pte_tpte){returnnative_pte_val(pte) & PTE_FLAGS_MASK; } 2.1.3 xxx_val和__xxx 参照/arch/x86/include/asm/...
第四次读取内存得到pte_t结构的目录项,从中取出物理页的基地址。 从线性地址的第五部分中取出物理页内偏移量,与物理页基址相加得到最终的物理地址。 第五次读取内存得到最终要访问的数据。 整个过程是比较机械的,每次转换先获取物理页基地址,再从线性地址中获取索引,合成物理地址后再访问内存。不管是页表还是要访问...
struct*mm=vma->vm_mm;unsigned long address;pte_t*pte;pte_t pteval;spinlock_t*ptl;int ret=SWAP_AGAIN;/*计算出待回收页的线性地址*/address=vma_address(page,vma);if(address==-EFAULT)goto out;/*获取线性地址对应的页表项地址*/pte=page_check_address(page,mm,address,&ptl,0);if(!pte)goto...
PAGE_SHIFT 用来表示页表中的一个 PTE 可以映射的物理内存大小(4K)。 PMD_SHIFT 用来表示 PMD 中的一个页目录项 pmd_t 可以映射的物理内存大小(2M)。 PUD_SHIFT 用来表示 PUD 中的一个页目录项 pud_t 可以映射的物理内存大小(1G)。 PGD_SHIFT 用来表示 PGD 中的一个页目录项 pgd_t 可以映射的物理内存...
内存用内存地址(memory address)来为每个字节的数据顺序编号。因此,内存地址说明了数据在内存中的位置。
struct page 数据结构是这种机制的关键部分:它是内核用来引用单个物理页、存储其物理地址及其各种其他元数据的结构。例如,我们可以从 PTE 中包含的信息(上面描述的页表的最后一级)中获得 struct page。一般来说,它被广泛用于处理页面相关事务的所有代码。
intdo_munmap(struct mm_struct*mm,unsigned long start,size_t len) 第一个参数指定要删除区域所在的地址空间,删除从地址start开始,长度为len字节的地址空间,如果成功,返回0,否则返回负的错误码。与之相对应的用户空间系统调用是munmap。 下面开始最后一点内容:页表 ...