#ifndef _ASM_X86_PGTABLE_64_H
#define _ASM_X86_PGTABLE_64_H
#include <linux/const.h>
#include <asm/pgtable_64_types.h>
#ifndef __ASSEMBLY__
#include <asm/processor.h>
#include <linux/bitops.h>
#include <linux/threads.h>
#include <asm/fixmap.h>
extern p4d_t level4_kernel_pgt[512];
extern p4d_t level4_ident_pgt[512];
extern pud_t level3_kernel_pgt[512];
extern pud_t level3_ident_pgt[512];
extern pmd_t level2_kernel_pgt[512];
extern pmd_t level2_fixmap_pgt[512];
extern pmd_t level2_ident_pgt[512];
extern pte_t level1_fixmap_pgt[512 * FIXMAP_PMD_NUM];
extern pgd_t init_top_pgt[];
#define swapper_pg_dir …
extern void paging_init(void);
static inline void sync_initial_page_table(void) { … }
#define pte_ERROR(e) …
#define pmd_ERROR(e) …
#define pud_ERROR(e) …
#if CONFIG_PGTABLE_LEVELS >= 5
#define p4d_ERROR(e) …
#endif
#define pgd_ERROR(e) …
struct mm_struct;
#define mm_p4d_folded …
static inline bool mm_p4d_folded(struct mm_struct *mm)
{ … }
void set_pte_vaddr_p4d(p4d_t *p4d_page, unsigned long vaddr, pte_t new_pte);
void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte);
static inline void native_set_pte(pte_t *ptep, pte_t pte)
{ … }
static inline void native_pte_clear(struct mm_struct *mm, unsigned long addr,
pte_t *ptep)
{ … }
static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
{ … }
static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
{ … }
static inline void native_pmd_clear(pmd_t *pmd)
{ … }
static inline pte_t native_ptep_get_and_clear(pte_t *xp)
{ … }
static inline pmd_t native_pmdp_get_and_clear(pmd_t *xp)
{ … }
static inline void native_set_pud(pud_t *pudp, pud_t pud)
{ … }
static inline void native_pud_clear(pud_t *pud)
{ … }
static inline pud_t native_pudp_get_and_clear(pud_t *xp)
{ … }
static inline void native_set_p4d(p4d_t *p4dp, p4d_t p4d)
{ … }
static inline void native_p4d_clear(p4d_t *p4d)
{ … }
static inline void native_set_pgd(pgd_t *pgdp, pgd_t pgd)
{ … }
static inline void native_pgd_clear(pgd_t *pgd)
{ … }
#define SWP_TYPE_BITS …
#define SWP_OFFSET_FIRST_BIT …
#define SWP_OFFSET_SHIFT …
#define MAX_SWAPFILES_CHECK() …
#define __swp_type(x) …
#define __swp_offset(x) …
#define __swp_entry(type, offset) …
#define __pte_to_swp_entry(pte) …
#define __pmd_to_swp_entry(pmd) …
#define __swp_entry_to_pte(x) …
#define __swp_entry_to_pmd(x) …
extern void cleanup_highmap(void);
#define HAVE_ARCH_UNMAPPED_AREA
#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
#define PAGE_AGP …
#define HAVE_PAGE_AGP …
#define kc_vaddr_to_offset(v) …
#define kc_offset_to_vaddr(o) …
#define __HAVE_ARCH_PTE_SAME
#define vmemmap …
extern void init_extra_mapping_uc(unsigned long phys, unsigned long size);
extern void init_extra_mapping_wb(unsigned long phys, unsigned long size);
#define gup_fast_permitted …
static inline bool gup_fast_permitted(unsigned long start, unsigned long end)
{ … }
#include <asm/pgtable-invert.h>
#else
#define l4_index …
#define pud_index …
L4_PAGE_OFFSET = l4_index(__PAGE_OFFSET_BASE_L4)
L4_START_KERNEL = l4_index(__START_KERNEL_map)
L3_START_KERNEL = pud_index(__START_KERNEL_map)
#define SYM_DATA_START_PAGE_ALIGNED …
#define PMDS …
#endif
#endif