~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/x86/include/asm/pgtable_32_types.h

Version: ~ [ linux-5.4-rc3 ] ~ [ linux-5.3.6 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.79 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.149 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.196 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.196 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.75 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #ifndef _ASM_X86_PGTABLE_32_DEFS_H
  2 #define _ASM_X86_PGTABLE_32_DEFS_H
  3 
  4 /*
  5  * The Linux x86 paging architecture is 'compile-time dual-mode', it
  6  * implements both the traditional 2-level x86 page tables and the
  7  * newer 3-level PAE-mode page tables.
  8  */
  9 #ifdef CONFIG_X86_PAE
 10 # include <asm/pgtable-3level_types.h>
 11 # define PMD_SIZE       (1UL << PMD_SHIFT)
 12 # define PMD_MASK       (~(PMD_SIZE - 1))
 13 #else
 14 # include <asm/pgtable-2level_types.h>
 15 #endif
 16 
 17 #define PGDIR_SIZE      (1UL << PGDIR_SHIFT)
 18 #define PGDIR_MASK      (~(PGDIR_SIZE - 1))
 19 
 20 /* Just any arbitrary offset to the start of the vmalloc VM area: the
 21  * current 8MB value just means that there will be a 8MB "hole" after the
 22  * physical memory until the kernel virtual memory starts.  That means that
 23  * any out-of-bounds memory accesses will hopefully be caught.
 24  * The vmalloc() routines leaves a hole of 4kB between each vmalloced
 25  * area for the same reason. ;)
 26  */
 27 #define VMALLOC_OFFSET  (8 * 1024 * 1024)
 28 
 29 #ifndef __ASSEMBLY__
 30 extern bool __vmalloc_start_set; /* set once high_memory is set */
 31 #endif
 32 
 33 #define VMALLOC_START   ((unsigned long)high_memory + VMALLOC_OFFSET)
 34 #ifdef CONFIG_X86_PAE
 35 #define LAST_PKMAP 512
 36 #else
 37 #define LAST_PKMAP 1024
 38 #endif
 39 
 40 #define PKMAP_BASE ((FIXADDR_START - PAGE_SIZE * (LAST_PKMAP + 1))      \
 41                     & PMD_MASK)
 42 
 43 #ifdef CONFIG_HIGHMEM
 44 # define VMALLOC_END    (PKMAP_BASE - 2 * PAGE_SIZE)
 45 #else
 46 # define VMALLOC_END    (FIXADDR_START - 2 * PAGE_SIZE)
 47 #endif
 48 
 49 #define MODULES_VADDR   VMALLOC_START
 50 #define MODULES_END     VMALLOC_END
 51 #define MODULES_LEN     (MODULES_VADDR - MODULES_END)
 52 
 53 #define MAXMEM  (VMALLOC_END - PAGE_OFFSET - __VMALLOC_RESERVE)
 54 
 55 #endif /* _ASM_X86_PGTABLE_32_DEFS_H */
 56 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp