参照元

説明

引数

返り値

参考

実装

CONFIG_FLATMEM 有効

#define __pfn_to_page(pfn)      (mem_map + ((pfn) - ARCH_PFN_OFFSET))

CONFIG_DISCONTIGMEM 有効

#define __pfn_to_page(pfn)                      \
({      unsigned long __pfn = (pfn);            \
        unsigned long __nid = arch_pfn_to_nid(__pfn);  \
        NODE_DATA(__nid)->node_mem_map + arch_local_page_offset(__pfn, __nid);\
})

CONFIG_SPARSEMEM_VMEMMAP 有効

/* memmap is virtually contiguous.  */
#define __pfn_to_page(pfn)      (vmemmap + (pfn))

CONFIG_SPARSEMEM 有効

#define __pfn_to_page(pfn)                              \
({      unsigned long __pfn = (pfn);                    \
        struct mem_section *__sec = __pfn_to_section(__pfn);    \
        __section_mem_map_addr(__sec) + __pfn;          \
})

コメント


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS