File: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/sparsemem.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

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