blob: daacc23e3fb95170173c5afd6f49ebbce5b2d5c3 [file] [log] [blame]
H. Peter Anvin1965aae2008-10-22 22:26:29 -07001#ifndef _ASM_X86_PGTABLE_2LEVEL_DEFS_H
2#define _ASM_X86_PGTABLE_2LEVEL_DEFS_H
Linus Torvalds1da177e2005-04-16 15:20:36 -07003
Jeremy Fitzhardinge54321d92009-02-11 10:20:05 -08004#ifndef __ASSEMBLY__
5#include <linux/types.h>
6
7typedef unsigned long pteval_t;
8typedef unsigned long pmdval_t;
9typedef unsigned long pudval_t;
10typedef unsigned long pgdval_t;
11typedef unsigned long pgprotval_t;
12
13typedef union {
14 pteval_t pte;
15 pteval_t pte_low;
16} pte_t;
17#endif /* !__ASSEMBLY__ */
18
Jeremy Fitzhardinge5311ab62007-05-02 19:27:13 +020019#define SHARED_KERNEL_PMD 0
Jeremy Fitzhardinge9b3651c2009-02-13 11:01:54 -080020#define PAGETABLE_LEVELS 2
Jeremy Fitzhardinge5311ab62007-05-02 19:27:13 +020021
Linus Torvalds1da177e2005-04-16 15:20:36 -070022/*
23 * traditional i386 two-level paging structure:
24 */
25
26#define PGDIR_SHIFT 22
27#define PTRS_PER_PGD 1024
28
Jeremy Fitzhardinge9b3651c2009-02-13 11:01:54 -080029
Linus Torvalds1da177e2005-04-16 15:20:36 -070030/*
31 * the i386 is two-level, so we don't really have any
32 * PMD directory physically.
33 */
34
35#define PTRS_PER_PTE 1024
36
H. Peter Anvin1965aae2008-10-22 22:26:29 -070037#endif /* _ASM_X86_PGTABLE_2LEVEL_DEFS_H */