*参照元 [#c13af72a] #backlinks *説明 [#ydeb446e] -パス: [[linux-4.4.1/]] -FIXME: これは何? --説明 **引数 [#t5771aa2] - -- **返り値 [#l8323b01] - -- **参考 [#h66e3d11] *実装 [#j8925877] **CONFIG_FLATMEM 有効 [#c2d0ee4a] #define __pfn_to_page(pfn) (mem_map + ((pfn) - ARCH_PFN_OFFSET)) - --[[linux-4.4.1/ARCH_PFN_OFFSET]] **CONFIG_DISCONTIGMEM 有効 [#jba5c2ec] #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);\ - --[[linux-4.4.1/arch_pfn_to_nid()]] --[[linux-4.4.1/NODE_DATA()]] --[[linux-4.4.1/arch_local_page_offset()]] }) **CONFIG_SPARSEMEM_VMEMMAP 有効 [#q218691f] /* memmap is virtually contiguous. */ #define __pfn_to_page(pfn) (vmemmap + (pfn)) - --[[linux-4.4.1/vmemmap(global)]] **CONFIG_SPARSEMEM 有効 [#h220b4ba] #define __pfn_to_page(pfn) \ ({ unsigned long __pfn = (pfn); \ struct mem_section *__sec = __pfn_to_section(__pfn); \ - --[[linux-4.4.1/mem_section]] --[[linux-4.4.1/__pfn_to_section()]] __section_mem_map_addr(__sec) + __pfn; \ - --[[linux-4.4.1/__section_mem_map_addr()]] }) *コメント [#db5d3743]