从页框号<===>page结构体(定义在include/linux/mm_types.h文件里)
pfn_to_page(pfn);
page_to_pfn(page);
页框号<===>物理地址得到页框号:
physical_addr >> PAGE_SHIFT #asm/page_types.h
物理地址: pfn << PAGE_SHIFT
page结构体 <==> 虚拟地址page_address(page)
如果是线性映射的话,从虚拟地址可以得到物理地址,就可以得到页框号,最后得到page结构体地址
ps: 原子变量读#include atomic_read.