#ifndef pmd_page_vaddr staticinlineconstvoid *pmd_page_vaddr(pmd_t pmd)
{ return __va(pmd_val(pmd) & ~PMD_MASKED_BITS);
} #define pmd_page_vaddr pmd_page_vaddr #endif /* * ZERO_PAGE is a global shared page that is always zero: used * for zero-mapped memory areas etc..
*/ externunsignedlong empty_zero_page[]; #define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page))
/* * This gets called at the end of handling a page fault, when * the kernel has put a new PTE into the page table for the process. * We use it to ensure coherency between the i-cache and d-cache * for the page which has just been mapped in. * On machines which use an MMU hash table, we use this to put a * corresponding HPTE into the hash table ahead of time, instead of * waiting for the inevitable extra hash-table miss exception.
*/ staticinlinevoid update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, unsignedlong address,
pte_t *ptep, unsignedint nr)
{ if ((mmu_has_feature(MMU_FTR_HPTE_TABLE) && !radix_enabled()) ||
(IS_ENABLED(CONFIG_PPC_E500) && IS_ENABLED(CONFIG_HUGETLB_PAGE)))
__update_mmu_cache(vma, address, ptep);
}
/* * When used, PTE_FRAG_NR is defined in subarch pgtable.h * so we are sure it is included when arriving here.
*/ #ifdef PTE_FRAG_NR staticinlinevoid *pte_frag_get(mm_context_t *ctx)
{ return ctx->pte_frag;
}
#ifdef CONFIG_PPC64 int __meminit vmemmap_populated(unsignedlong vmemmap_addr, int vmemmap_map_size); bool altmap_cross_boundary(struct vmem_altmap *altmap, unsignedlong start, unsignedlong page_size); /* * mm/memory_hotplug.c:mhp_supports_memmap_on_memory goes into details * some of the restrictions. We don't check for PMD_SIZE because our * vmemmap allocation code can fallback correctly. The pageblock * alignment requirement is met using altmap->reserve blocks.
*/ #define arch_supports_memmap_on_memory arch_supports_memmap_on_memory staticinlinebool arch_supports_memmap_on_memory(unsignedlong vmemmap_size)
{ if (!radix_enabled()) returnfalse; /* * With 4K page size and 2M PMD_SIZE, we can align * things better with memory block size value * starting from 128MB. Hence align things with PMD_SIZE.
*/ if (IS_ENABLED(CONFIG_PPC_4K_PAGES)) return IS_ALIGNED(vmemmap_size, PMD_SIZE); returntrue;
}
#endif/* CONFIG_PPC64 */
#endif/* __ASSEMBLY__ */
#endif/* _ASM_POWERPC_PGTABLE_H */
Messung V0.5
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.