linux/include/asm-generic/5level-fixup.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef _5LEVEL_FIXUP_H
   3#define _5LEVEL_FIXUP_H
   4
   5#define __ARCH_HAS_5LEVEL_HACK
   6#define __PAGETABLE_P4D_FOLDED 1
   7
   8#define P4D_SHIFT                       PGDIR_SHIFT
   9#define P4D_SIZE                        PGDIR_SIZE
  10#define P4D_MASK                        PGDIR_MASK
  11#define MAX_PTRS_PER_P4D                1
  12#define PTRS_PER_P4D                    1
  13
  14#define p4d_t                           pgd_t
  15
  16#define pud_alloc(mm, p4d, address) \
  17        ((unlikely(pgd_none(*(p4d))) && __pud_alloc(mm, p4d, address)) ? \
  18                NULL : pud_offset(p4d, address))
  19
  20#define p4d_alloc(mm, pgd, address)     (pgd)
  21#define p4d_offset(pgd, start)          (pgd)
  22#define p4d_none(p4d)                   0
  23#define p4d_bad(p4d)                    0
  24#define p4d_present(p4d)                1
  25#define p4d_ERROR(p4d)                  do { } while (0)
  26#define p4d_clear(p4d)                  pgd_clear(p4d)
  27#define p4d_val(p4d)                    pgd_val(p4d)
  28#define p4d_populate(mm, p4d, pud)      pgd_populate(mm, p4d, pud)
  29#define p4d_populate_safe(mm, p4d, pud) pgd_populate(mm, p4d, pud)
  30#define p4d_page(p4d)                   pgd_page(p4d)
  31#define p4d_page_vaddr(p4d)             pgd_page_vaddr(p4d)
  32
  33#define __p4d(x)                        __pgd(x)
  34#define set_p4d(p4dp, p4d)              set_pgd(p4dp, p4d)
  35
  36#undef p4d_free_tlb
  37#define p4d_free_tlb(tlb, x, addr)      do { } while (0)
  38#define p4d_free(mm, x)                 do { } while (0)
  39#define __p4d_free_tlb(tlb, x, addr)    do { } while (0)
  40
  41#undef  p4d_addr_end
  42#define p4d_addr_end(addr, end)         (end)
  43
  44#endif
  45