diff options
Diffstat (limited to 'include/asm-s390/pgtable.h')
-rw-r--r-- | include/asm-s390/pgtable.h | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/include/asm-s390/pgtable.h b/include/asm-s390/pgtable.h index f8347ce9c5a..c7f4f8e3e29 100644 --- a/include/asm-s390/pgtable.h +++ b/include/asm-s390/pgtable.h | |||
@@ -129,7 +129,7 @@ extern char empty_zero_page[PAGE_SIZE]; | |||
129 | #define VMEM_MAX_PAGES ((VMEM_MAP_END - VMALLOC_END) / sizeof(struct page)) | 129 | #define VMEM_MAX_PAGES ((VMEM_MAP_END - VMALLOC_END) / sizeof(struct page)) |
130 | #define VMEM_MAX_PFN min(VMALLOC_START >> PAGE_SHIFT, VMEM_MAX_PAGES) | 130 | #define VMEM_MAX_PFN min(VMALLOC_START >> PAGE_SHIFT, VMEM_MAX_PAGES) |
131 | #define VMEM_MAX_PHYS ((VMEM_MAX_PFN << PAGE_SHIFT) & ~((16 << 20) - 1)) | 131 | #define VMEM_MAX_PHYS ((VMEM_MAX_PFN << PAGE_SHIFT) & ~((16 << 20) - 1)) |
132 | #define VMEM_MAP ((struct page *) VMALLOC_END) | 132 | #define vmemmap ((struct page *) VMALLOC_END) |
133 | 133 | ||
134 | /* | 134 | /* |
135 | * A 31 bit pagetable entry of S390 has following format: | 135 | * A 31 bit pagetable entry of S390 has following format: |
@@ -234,6 +234,15 @@ extern char empty_zero_page[PAGE_SIZE]; | |||
234 | #define _PAGE_TYPE_EX_RW 0x002 | 234 | #define _PAGE_TYPE_EX_RW 0x002 |
235 | 235 | ||
236 | /* | 236 | /* |
237 | * Only four types for huge pages, using the invalid bit and protection bit | ||
238 | * of a segment table entry. | ||
239 | */ | ||
240 | #define _HPAGE_TYPE_EMPTY 0x020 /* _SEGMENT_ENTRY_INV */ | ||
241 | #define _HPAGE_TYPE_NONE 0x220 | ||
242 | #define _HPAGE_TYPE_RO 0x200 /* _SEGMENT_ENTRY_RO */ | ||
243 | #define _HPAGE_TYPE_RW 0x000 | ||
244 | |||
245 | /* | ||
237 | * PTE type bits are rather complicated. handle_pte_fault uses pte_present, | 246 | * PTE type bits are rather complicated. handle_pte_fault uses pte_present, |
238 | * pte_none and pte_file to find out the pte type WITHOUT holding the page | 247 | * pte_none and pte_file to find out the pte type WITHOUT holding the page |
239 | * table lock. ptep_clear_flush on the other hand uses ptep_clear_flush to | 248 | * table lock. ptep_clear_flush on the other hand uses ptep_clear_flush to |
@@ -325,6 +334,9 @@ extern char empty_zero_page[PAGE_SIZE]; | |||
325 | #define _SEGMENT_ENTRY (0) | 334 | #define _SEGMENT_ENTRY (0) |
326 | #define _SEGMENT_ENTRY_EMPTY (_SEGMENT_ENTRY_INV) | 335 | #define _SEGMENT_ENTRY_EMPTY (_SEGMENT_ENTRY_INV) |
327 | 336 | ||
337 | #define _SEGMENT_ENTRY_LARGE 0x400 /* STE-format control, large page */ | ||
338 | #define _SEGMENT_ENTRY_CO 0x100 /* change-recording override */ | ||
339 | |||
328 | #endif /* __s390x__ */ | 340 | #endif /* __s390x__ */ |
329 | 341 | ||
330 | /* | 342 | /* |
@@ -1063,8 +1075,8 @@ static inline pte_t mk_swap_pte(unsigned long type, unsigned long offset) | |||
1063 | 1075 | ||
1064 | #define kern_addr_valid(addr) (1) | 1076 | #define kern_addr_valid(addr) (1) |
1065 | 1077 | ||
1066 | extern int add_shared_memory(unsigned long start, unsigned long size); | 1078 | extern int vmem_add_mapping(unsigned long start, unsigned long size); |
1067 | extern int remove_shared_memory(unsigned long start, unsigned long size); | 1079 | extern int vmem_remove_mapping(unsigned long start, unsigned long size); |
1068 | extern int s390_enable_sie(void); | 1080 | extern int s390_enable_sie(void); |
1069 | 1081 | ||
1070 | /* | 1082 | /* |
@@ -1072,9 +1084,6 @@ extern int s390_enable_sie(void); | |||
1072 | */ | 1084 | */ |
1073 | #define pgtable_cache_init() do { } while (0) | 1085 | #define pgtable_cache_init() do { } while (0) |
1074 | 1086 | ||
1075 | #define __HAVE_ARCH_MEMMAP_INIT | ||
1076 | extern void memmap_init(unsigned long, int, unsigned long, unsigned long); | ||
1077 | |||
1078 | #include <asm-generic/pgtable.h> | 1087 | #include <asm-generic/pgtable.h> |
1079 | 1088 | ||
1080 | #endif /* _S390_PAGE_H */ | 1089 | #endif /* _S390_PAGE_H */ |