pgtable.h (0ea8a56de21be24cb79abb03dee79aabcd60a316) | pgtable.h (b02002cc4c0f8a2340d07690f58cae0c04ba2325) |
---|---|
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * S390 version 4 * Copyright IBM Corp. 1999, 2000 5 * Author(s): Hartmut Penner (hp@de.ibm.com) 6 * Ulrich Weigand (weigand@de.ibm.com) 7 * Martin Schwidefsky (schwidefsky@de.ibm.com) 8 * --- 1172 unchanged lines hidden (view full) --- 1181int get_pgste(struct mm_struct *mm, unsigned long hva, unsigned long *pgstep); 1182int pgste_perform_essa(struct mm_struct *mm, unsigned long hva, int orc, 1183 unsigned long *oldpte, unsigned long *oldpgste); 1184void gmap_pmdp_csp(struct mm_struct *mm, unsigned long vmaddr); 1185void gmap_pmdp_invalidate(struct mm_struct *mm, unsigned long vmaddr); 1186void gmap_pmdp_idte_local(struct mm_struct *mm, unsigned long vmaddr); 1187void gmap_pmdp_idte_global(struct mm_struct *mm, unsigned long vmaddr); 1188 | 1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * S390 version 4 * Copyright IBM Corp. 1999, 2000 5 * Author(s): Hartmut Penner (hp@de.ibm.com) 6 * Ulrich Weigand (weigand@de.ibm.com) 7 * Martin Schwidefsky (schwidefsky@de.ibm.com) 8 * --- 1172 unchanged lines hidden (view full) --- 1181int get_pgste(struct mm_struct *mm, unsigned long hva, unsigned long *pgstep); 1182int pgste_perform_essa(struct mm_struct *mm, unsigned long hva, int orc, 1183 unsigned long *oldpte, unsigned long *oldpgste); 1184void gmap_pmdp_csp(struct mm_struct *mm, unsigned long vmaddr); 1185void gmap_pmdp_invalidate(struct mm_struct *mm, unsigned long vmaddr); 1186void gmap_pmdp_idte_local(struct mm_struct *mm, unsigned long vmaddr); 1187void gmap_pmdp_idte_global(struct mm_struct *mm, unsigned long vmaddr); 1188 |
1189#define pgprot_writecombine pgprot_writecombine 1190pgprot_t pgprot_writecombine(pgprot_t prot); 1191 1192#define pgprot_writethrough pgprot_writethrough 1193pgprot_t pgprot_writethrough(pgprot_t prot); 1194 |
|
1189/* 1190 * Certain architectures need to do special things when PTEs 1191 * within a page table are directly modified. Thus, the following 1192 * hook is made available. 1193 */ 1194static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, 1195 pte_t *ptep, pte_t entry) 1196{ --- 7 unchanged lines hidden (view full) --- 1204 1205/* 1206 * Conversion functions: convert a page and protection to a page entry, 1207 * and a page entry and page directory to the page they refer to. 1208 */ 1209static inline pte_t mk_pte_phys(unsigned long physpage, pgprot_t pgprot) 1210{ 1211 pte_t __pte; | 1195/* 1196 * Certain architectures need to do special things when PTEs 1197 * within a page table are directly modified. Thus, the following 1198 * hook is made available. 1199 */ 1200static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, 1201 pte_t *ptep, pte_t entry) 1202{ --- 7 unchanged lines hidden (view full) --- 1210 1211/* 1212 * Conversion functions: convert a page and protection to a page entry, 1213 * and a page entry and page directory to the page they refer to. 1214 */ 1215static inline pte_t mk_pte_phys(unsigned long physpage, pgprot_t pgprot) 1216{ 1217 pte_t __pte; |
1212 pte_val(__pte) = physpage + pgprot_val(pgprot); | 1218 1219 pte_val(__pte) = physpage | pgprot_val(pgprot); |
1213 if (!MACHINE_HAS_NX) 1214 pte_val(__pte) &= ~_PAGE_NOEXEC; 1215 return pte_mkyoung(__pte); 1216} 1217 1218static inline pte_t mk_pte(struct page *page, pgprot_t pgprot) 1219{ 1220 unsigned long physpage = page_to_phys(page); --- 461 unchanged lines hidden --- | 1220 if (!MACHINE_HAS_NX) 1221 pte_val(__pte) &= ~_PAGE_NOEXEC; 1222 return pte_mkyoung(__pte); 1223} 1224 1225static inline pte_t mk_pte(struct page *page, pgprot_t pgprot) 1226{ 1227 unsigned long physpage = page_to_phys(page); --- 461 unchanged lines hidden --- |