常用转换
虚拟地址和物理地址
__pa_symbol()
#define __START_KERNEL_map _AC(0xffffffff80000000, UL)
#define __pa_symbol(x) \
__phys_addr_symbol(__phys_reloc_hide((unsigned long)(x)))
#define __phys_addr_symbol(x) \
((unsigned long)(x) - __START_KERNEL_map + phys_base)__pa()
__va() / phys_to_virt()
pfn和struct page
__pfn_to_page(pfn)
__page_to_pfn(pg)
虚拟地址和struct page
virt_to_page()
page_to_virt()
Last updated