diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
commit | ada47b5fe13d89735805b566185f4885f5a3f750 (patch) | |
tree | 644b88f8a71896307d71438e9b3af49126ffb22b /arch/sh/include/asm/pgtable_64.h | |
parent | 43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff) | |
parent | 3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff) |
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'arch/sh/include/asm/pgtable_64.h')
-rw-r--r-- | arch/sh/include/asm/pgtable_64.h | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/arch/sh/include/asm/pgtable_64.h b/arch/sh/include/asm/pgtable_64.h index 17cdbecc3adc..0ee46776dad6 100644 --- a/arch/sh/include/asm/pgtable_64.h +++ b/arch/sh/include/asm/pgtable_64.h | |||
@@ -43,11 +43,6 @@ static __inline__ void set_pte(pte_t *pteptr, pte_t pteval) | |||
43 | } | 43 | } |
44 | #define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval) | 44 | #define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval) |
45 | 45 | ||
46 | static __inline__ void pmd_set(pmd_t *pmdp,pte_t *ptep) | ||
47 | { | ||
48 | pmd_val(*pmdp) = (unsigned long) ptep; | ||
49 | } | ||
50 | |||
51 | /* | 46 | /* |
52 | * PGD defines. Top level. | 47 | * PGD defines. Top level. |
53 | */ | 48 | */ |
@@ -128,8 +123,21 @@ static __inline__ void pmd_set(pmd_t *pmdp,pte_t *ptep) | |||
128 | #define _PAGE_DIRTY 0x400 /* software: page accessed in write */ | 123 | #define _PAGE_DIRTY 0x400 /* software: page accessed in write */ |
129 | #define _PAGE_ACCESSED 0x800 /* software: page referenced */ | 124 | #define _PAGE_ACCESSED 0x800 /* software: page referenced */ |
130 | 125 | ||
126 | /* Wrapper for extended mode pgprot twiddling */ | ||
127 | #define _PAGE_EXT(x) ((unsigned long long)(x) << 32) | ||
128 | |||
129 | /* | ||
130 | * We can use the sign-extended bits in the PTEL to get 32 bits of | ||
131 | * software flags. This works for now because no implementations uses | ||
132 | * anything above the PPN field. | ||
133 | */ | ||
134 | #define _PAGE_WIRED _PAGE_EXT(0x001) /* software: wire the tlb entry */ | ||
135 | |||
136 | #define _PAGE_CLEAR_FLAGS (_PAGE_PRESENT | _PAGE_FILE | _PAGE_SHARED | \ | ||
137 | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_WIRED) | ||
138 | |||
131 | /* Mask which drops software flags */ | 139 | /* Mask which drops software flags */ |
132 | #define _PAGE_FLAGS_HARDWARE_MASK 0xfffffffffffff3dbLL | 140 | #define _PAGE_FLAGS_HARDWARE_MASK (NEFF_MASK & ~(_PAGE_CLEAR_FLAGS)) |
133 | 141 | ||
134 | /* | 142 | /* |
135 | * HugeTLB support | 143 | * HugeTLB support |
@@ -203,12 +211,6 @@ static __inline__ void pmd_set(pmd_t *pmdp,pte_t *ptep) | |||
203 | #define pgprot_writecombine(prot) __pgprot(pgprot_val(prot) & ~_PAGE_CACHABLE) | 211 | #define pgprot_writecombine(prot) __pgprot(pgprot_val(prot) & ~_PAGE_CACHABLE) |
204 | 212 | ||
205 | /* | 213 | /* |
206 | * Handling allocation failures during page table setup. | ||
207 | */ | ||
208 | extern void __handle_bad_pmd_kernel(pmd_t * pmd); | ||
209 | #define __handle_bad_pmd(x) __handle_bad_pmd_kernel(x) | ||
210 | |||
211 | /* | ||
212 | * PTE level access routines. | 214 | * PTE level access routines. |
213 | * | 215 | * |
214 | * Note1: | 216 | * Note1: |