diff options
| author | Jeff Dike <jdike@uml.karaya.com> | 2002-09-23 13:43:15 -0400 |
|---|---|---|
| committer | Jeff Dike <jdike@uml.karaya.com> | 2002-09-23 13:43:15 -0400 |
| commit | fc72f34545efbe18cd46c446e3368ce50913eff4 (patch) | |
| tree | 2ec1afebec04d263784e4f044784c2a471ee8df8 /include/asm-um/pgtable.h | |
| parent | f20bf018befffbf30dbab2653586b437c358d26b (diff) | |
Added highmem support.
The UML initialization code marks memory that doesn't fit in the
kernel's address space as highmem, and later sets up the UML data
structures for it, and frees that memory to the mm system as highmem.
Diffstat (limited to 'include/asm-um/pgtable.h')
| -rw-r--r-- | include/asm-um/pgtable.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/include/asm-um/pgtable.h b/include/asm-um/pgtable.h index 85b366b643a3..17fd515545da 100644 --- a/include/asm-um/pgtable.h +++ b/include/asm-um/pgtable.h @@ -62,12 +62,16 @@ extern unsigned long *empty_zero_page; */ extern unsigned long high_physmem; -extern unsigned long end_vm; #define VMALLOC_OFFSET (__va_space) #define VMALLOC_START (((unsigned long) high_physmem + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1)) #define VMALLOC_VMADDR(x) ((unsigned long)(x)) -#define VMALLOC_END (end_vm) + +#if CONFIG_HIGHMEM +# define VMALLOC_END (PKMAP_BASE-2*PAGE_SIZE) +#else +# define VMALLOC_END (FIXADDR_START-2*PAGE_SIZE) +#endif #define _PAGE_PRESENT 0x001 #define _PAGE_NEWPAGE 0x002 @@ -333,6 +337,7 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) /* to find an entry in a page-table-directory. */ #define pgd_index(address) ((address >> PGDIR_SHIFT) & (PTRS_PER_PGD-1)) +#define __pgd_offset(address) pgd_index(address) /* to find an entry in a page-table-directory */ #define pgd_offset(mm, address) \ @@ -341,6 +346,9 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) /* to find an entry in a kernel page-table-directory */ #define pgd_offset_k(address) pgd_offset(&init_mm, address) +#define __pmd_offset(address) \ + (((address) >> PMD_SHIFT) & (PTRS_PER_PMD-1)) + /* Find an entry in the second-level page table.. */ static inline pmd_t * pmd_offset(pgd_t * dir, unsigned long address) { |
