#ifndef _LINUX_PFN_T_H_
#define _LINUX_PFN_T_H_
#include <linux/mm.h>
#define PFN_FLAGS_MASK …
#define PFN_SG_CHAIN …
#define PFN_SG_LAST …
#define PFN_DEV …
#define PFN_MAP …
#define PFN_SPECIAL …
#define PFN_FLAGS_TRACE …
static inline pfn_t __pfn_to_pfn_t(unsigned long pfn, u64 flags)
{ … }
static inline pfn_t pfn_to_pfn_t(unsigned long pfn)
{ … }
static inline pfn_t phys_to_pfn_t(phys_addr_t addr, u64 flags)
{ … }
static inline bool pfn_t_has_page(pfn_t pfn)
{ … }
static inline unsigned long pfn_t_to_pfn(pfn_t pfn)
{ … }
static inline struct page *pfn_t_to_page(pfn_t pfn)
{ … }
static inline phys_addr_t pfn_t_to_phys(pfn_t pfn)
{ … }
static inline pfn_t page_to_pfn_t(struct page *page)
{ … }
static inline int pfn_t_valid(pfn_t pfn)
{ … }
#ifdef CONFIG_MMU
static inline pte_t pfn_t_pte(pfn_t pfn, pgprot_t pgprot)
{ … }
#endif
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
static inline pmd_t pfn_t_pmd(pfn_t pfn, pgprot_t pgprot)
{ … }
#ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD
static inline pud_t pfn_t_pud(pfn_t pfn, pgprot_t pgprot)
{ … }
#endif
#endif
#ifdef CONFIG_ARCH_HAS_PTE_DEVMAP
static inline bool pfn_t_devmap(pfn_t pfn)
{ … }
#else
static inline bool pfn_t_devmap(pfn_t pfn)
{
return false;
}
pte_t pte_mkdevmap(pte_t pte);
pmd_t pmd_mkdevmap(pmd_t pmd);
#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && \
defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD)
pud_t pud_mkdevmap(pud_t pud);
#endif
#endif
#ifdef CONFIG_ARCH_HAS_PTE_SPECIAL
static inline bool pfn_t_special(pfn_t pfn)
{ … }
#else
static inline bool pfn_t_special(pfn_t pfn)
{
return false;
}
#endif
#endif