]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blob - arch/x86/include/asm/page_types.h
x86: move pte types into pgtable*.h
[linux-2.6-omap-h63xx.git] / arch / x86 / include / asm / page_types.h
1 #ifndef _ASM_X86_PAGE_DEFS_H
2 #define _ASM_X86_PAGE_DEFS_H
3
4 #include <linux/const.h>
5
6 /* PAGE_SHIFT determines the page size */
7 #define PAGE_SHIFT      12
8 #define PAGE_SIZE       (_AC(1,UL) << PAGE_SHIFT)
9 #define PAGE_MASK       (~(PAGE_SIZE-1))
10
11 #define __PHYSICAL_MASK         ((phys_addr_t)(1ULL << __PHYSICAL_MASK_SHIFT) - 1)
12 #define __VIRTUAL_MASK          ((1UL << __VIRTUAL_MASK_SHIFT) - 1)
13
14 /* Cast PAGE_MASK to a signed type so that it is sign-extended if
15    virtual addresses are 32-bits but physical addresses are larger
16    (ie, 32-bit PAE). */
17 #define PHYSICAL_PAGE_MASK      (((signed long)PAGE_MASK) & __PHYSICAL_MASK)
18
19 /* PTE_PFN_MASK extracts the PFN from a (pte|pmd|pud|pgd)val_t */
20 #define PTE_PFN_MASK            ((pteval_t)PHYSICAL_PAGE_MASK)
21
22 /* PTE_FLAGS_MASK extracts the flags from a (pte|pmd|pud|pgd)val_t */
23 #define PTE_FLAGS_MASK          (~PTE_PFN_MASK)
24
25 #define PMD_PAGE_SIZE           (_AC(1, UL) << PMD_SHIFT)
26 #define PMD_PAGE_MASK           (~(PMD_PAGE_SIZE-1))
27
28 #define HPAGE_SHIFT             PMD_SHIFT
29 #define HPAGE_SIZE              (_AC(1,UL) << HPAGE_SHIFT)
30 #define HPAGE_MASK              (~(HPAGE_SIZE - 1))
31 #define HUGETLB_PAGE_ORDER      (HPAGE_SHIFT - PAGE_SHIFT)
32
33 #define HUGE_MAX_HSTATE 2
34
35 #define PAGE_OFFSET             ((unsigned long)__PAGE_OFFSET)
36
37 #define VM_DATA_DEFAULT_FLAGS \
38         (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \
39          VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
40
41 #ifdef CONFIG_X86_64
42 #include <asm/page_64_types.h>
43 #else
44 #include <asm/page_32_types.h>
45 #endif  /* CONFIG_X86_64 */
46
47 #ifndef __ASSEMBLY__
48
49 struct pgprot;
50
51 extern int page_is_ram(unsigned long pagenr);
52 extern int pagerange_is_ram(unsigned long start, unsigned long end);
53 extern int devmem_is_allowed(unsigned long pagenr);
54 extern void map_devmem(unsigned long pfn, unsigned long size,
55                        struct pgprot vma_prot);
56 extern void unmap_devmem(unsigned long pfn, unsigned long size,
57                          struct pgprot vma_prot);
58
59 extern unsigned long max_low_pfn_mapped;
60 extern unsigned long max_pfn_mapped;
61
62 #endif  /* !__ASSEMBLY__ */
63
64 #endif  /* _ASM_X86_PAGE_DEFS_H */