• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/x86/include/asm/
1#ifndef _ASM_X86_PGTABLE_64_DEFS_H
2#define _ASM_X86_PGTABLE_64_DEFS_H
3
4#ifndef __ASSEMBLY__
5#include <linux/types.h>
6
7/*
8 * These are used to make use of C type-checking..
9 */
10typedef unsigned long	pteval_t;
11typedef unsigned long	pmdval_t;
12typedef unsigned long	pudval_t;
13typedef unsigned long	pgdval_t;
14typedef unsigned long	pgprotval_t;
15
16typedef struct { pteval_t pte; } pte_t;
17
18#endif	/* !__ASSEMBLY__ */
19
20#define SHARED_KERNEL_PMD	0
21#define PAGETABLE_LEVELS	4
22
23/*
24 * PGDIR_SHIFT determines what a top-level page table entry can map
25 */
26#define PGDIR_SHIFT	39
27#define PTRS_PER_PGD	512
28
29/*
30 * 3rd level page
31 */
32#define PUD_SHIFT	30
33#define PTRS_PER_PUD	512
34
35/*
36 * PMD_SHIFT determines the size of the area a middle-level
37 * page table can map
38 */
39#define PMD_SHIFT	21
40#define PTRS_PER_PMD	512
41
42/*
43 * entries per page directory level
44 */
45#define PTRS_PER_PTE	512
46
47#define PMD_SIZE	(_AC(1, UL) << PMD_SHIFT)
48#define PMD_MASK	(~(PMD_SIZE - 1))
49#define PUD_SIZE	(_AC(1, UL) << PUD_SHIFT)
50#define PUD_MASK	(~(PUD_SIZE - 1))
51#define PGDIR_SIZE	(_AC(1, UL) << PGDIR_SHIFT)
52#define PGDIR_MASK	(~(PGDIR_SIZE - 1))
53
54/* See Documentation/x86/x86_64/mm.txt for a description of the memory map. */
55#define MAXMEM		 _AC(__AC(1, UL) << MAX_PHYSMEM_BITS, UL)
56#define VMALLOC_START    _AC(0xffffc90000000000, UL)
57#define VMALLOC_END      _AC(0xffffe8ffffffffff, UL)
58#define VMEMMAP_START	 _AC(0xffffea0000000000, UL)
59#define MODULES_VADDR    _AC(0xffffffffa0000000, UL)
60#define MODULES_END      _AC(0xffffffffff000000, UL)
61#define MODULES_LEN   (MODULES_END - MODULES_VADDR)
62
63#endif /* _ASM_X86_PGTABLE_64_DEFS_H */
64