structvm_area_struct *vm_next, *vm_prev;/* 链表的前驱后继 */ structrb_nodevm_rb;/* 自己的红黑树节点 */ structlist_headanon_vma_chain; structmm_struct *vm_mm;/* The address space we belong to. */ unsignedlong vm_start; /* Our start address within vm_mm. */ unsignedlong vm_end; /* The first byte after our end address within vm_mm. */
/* * Access permissions of this VMA. */ pgprot_t vm_page_prot; unsignedlong vm_flags; /* 访问权限 */
structlist_headanon_vma_chain; structanon_vma *anon_vma;/* Serialized by page_table_lock,真正访问内存时发生缺页中断,才会建立和物理内存的双向映射 */ structfile * vm_file;/* File we map to (can be NULL). */ unsignedlong vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE units */ void * vm_private_data; /* was vm_pte (shared mem) */ conststructvm_operations_struct *vm_ops;/* Function pointers to deal with this struct. 类似某种虚函数*/ }