root/arch/x86/include/asm/sparsemem.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef _ASM_X86_SPARSEMEM_H
   3 #define _ASM_X86_SPARSEMEM_H
   4 
   5 #ifdef CONFIG_SPARSEMEM
   6 /*
   7  * generic non-linear memory support:
   8  *
   9  * 1) we will not split memory into more chunks than will fit into the flags
  10  *    field of the struct page
  11  *
  12  * SECTION_SIZE_BITS            2^n: size of each section
  13  * MAX_PHYSADDR_BITS            2^n: max size of physical address space
  14  * MAX_PHYSMEM_BITS             2^n: how much memory we can have in that space
  15  *
  16  */
  17 
  18 #ifdef CONFIG_X86_32
  19 # ifdef CONFIG_X86_PAE
  20 #  define SECTION_SIZE_BITS     29
  21 #  define MAX_PHYSADDR_BITS     36
  22 #  define MAX_PHYSMEM_BITS      36
  23 # else
  24 #  define SECTION_SIZE_BITS     26
  25 #  define MAX_PHYSADDR_BITS     32
  26 #  define MAX_PHYSMEM_BITS      32
  27 # endif
  28 #else /* CONFIG_X86_32 */
  29 # define SECTION_SIZE_BITS      27 /* matt - 128 is convenient right now */
  30 # define MAX_PHYSADDR_BITS      (pgtable_l5_enabled() ? 52 : 44)
  31 # define MAX_PHYSMEM_BITS       (pgtable_l5_enabled() ? 52 : 46)
  32 #endif
  33 
  34 #endif /* CONFIG_SPARSEMEM */
  35 #endif /* _ASM_X86_SPARSEMEM_H */

/* [<][>][^][v][top][bottom][index][help] */