| 1 |
|
| 2 | |
| 3 | * highmem.h: virtual kernel memory mappings for high memory
|
| 4 | *
|
| 5 | * Used in CONFIG_HIGHMEM systems for memory pages which
|
| 6 | * are not addressable by direct kernel virtual addresses.
|
| 7 | *
|
| 8 | * Copyright (C) 1999 Gerhard Wichert, Siemens AG
|
| 9 | * [email protected]
|
| 10 | *
|
| 11 | *
|
| 12 | * Redesigned the x86 32-bit VM architecture to deal with
|
| 13 | * up to 16 Terabyte physical memory. With current x86 CPUs
|
| 14 | * we now support up to 64 Gigabytes physical RAM.
|
| 15 | *
|
| 16 | * Copyright (C) 1999 Ingo Molnar <[email protected]>
|
| 17 |
|
| 18 | #ifndef _ASM_HIGHMEM_H
|
| 19 | #define _ASM_HIGHMEM_H
|
| 20 |
|
| 21 | #ifdef __KERNEL__
|
| 22 |
|
| 23 | #include <linux/bug.h>
|
| 24 | #include <linux/interrupt.h>
|
| 25 | #include <linux/uaccess.h>
|
| 26 | #include <asm/cpu-features.h>
|
| 27 | #include <asm/kmap_size.h>
|
| 28 |
|
| 29 |
|
| 30 | extern unsigned long highstart_pfn, highend_pfn;
|
| 31 |
|
| 32 | extern pte_t *pkmap_page_table;
|
| 33 |
|
| 34 | |
| 35 | * Right now we initialize only a single pte table. It can be extended
|
| 36 | * easily, subsequent pte tables have to be allocated in one physical
|
| 37 | * chunk of RAM.
|
| 38 |
|
| 39 | #if defined(CONFIG_PHYS_ADDR_T_64BIT) || defined(CONFIG_MIPS_HUGE_TLB_SUPPORT)
|
| 40 | #define LAST_PKMAP 512
|
| 41 | #else
|
| 42 | #define LAST_PKMAP 1024
|
| 43 | #endif
|
| 44 |
|
| 45 | #define LAST_PKMAP_MASK (LAST_PKMAP-1)
|
| 46 | #define PKMAP_NR(virt) ((virt-PKMAP_BASE) >> PAGE_SHIFT)
|
| 47 | #define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT))
|
| 48 |
|
| 49 | #define ARCH_HAS_KMAP_FLUSH_TLB
|
| 50 | extern void kmap_flush_tlb(unsigned long addr);
|
| 51 |
|
| 52 | #define flush_cache_kmaps() BUG_ON(cpu_has_dc_aliases)
|
| 53 |
|
| 54 | #define arch_kmap_local_set_pte(mm, vaddr, ptep, ptev) set_pte(ptep, ptev)
|
| 55 | #define arch_kmap_local_post_map(vaddr, pteval) local_flush_tlb_one(vaddr)
|
| 56 | #define arch_kmap_local_post_unmap(vaddr) local_flush_tlb_one(vaddr)
|
| 57 |
|
| 58 | #endif
|
| 59 |
|
| 60 | #endif
|