Changeset d4673296 in mainline
- Timestamp:
- 2012-01-27T21:12:25Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- adec5b45
- Parents:
- 4dee0cb
- Location:
- kernel
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/arm32/src/mach/gta02/gta02.c
r4dee0cb rd4673296 38 38 #include <arch/mm/page.h> 39 39 #include <mm/page.h> 40 #include <mm/km.h> 40 41 #include <genarch/fb/fb.h> 41 42 #include <abi/fb/visuals.h> -
kernel/arch/arm32/src/mach/integratorcp/integratorcp.c
r4dee0cb rd4673296 45 45 #include <mm/page.h> 46 46 #include <mm/frame.h> 47 #include <mm/km.h> 47 48 #include <arch/mm/frame.h> 48 49 #include <arch/mach/integratorcp/integratorcp.h> -
kernel/arch/arm32/src/mach/testarm/testarm.c
r4dee0cb rd4673296 37 37 #include <arch/mach/testarm/testarm.h> 38 38 #include <mm/page.h> 39 #include <mm/km.h> 39 40 #include <genarch/fb/fb.h> 40 41 #include <abi/fb/visuals.h> -
kernel/arch/ia32/src/smp/smp.c
r4dee0cb rd4673296 47 47 #include <debug.h> 48 48 #include <arch/asm.h> 49 #include <mm/page.h> 49 50 #include <mm/frame.h> 50 #include <mm/ page.h>51 #include <mm/km.h> 51 52 #include <mm/slab.h> 52 53 #include <mm/as.h> -
kernel/arch/ia64/src/ia64.c
r4dee0cb rd4673296 53 53 #include <genarch/srln/srln.h> 54 54 #include <mm/page.h> 55 #include <mm/km.h> 55 56 56 57 #ifdef MACHINE_ski -
kernel/arch/ppc32/src/drivers/pic.c
r4dee0cb rd4673296 34 34 35 35 #include <arch/drivers/pic.h> 36 #include <mm/ page.h>36 #include <mm/km.h> 37 37 #include <byteorder.h> 38 38 #include <bitops.h> -
kernel/arch/ppc32/src/ppc32.c
r4dee0cb rd4673296 46 46 #include <userspace.h> 47 47 #include <mm/page.h> 48 #include <mm/km.h> 48 49 #include <abi/proc/uarg.h> 49 50 #include <console/console.h> -
kernel/arch/sparc64/src/drivers/kbd.c
r4dee0cb rd4673296 40 40 #include <mm/page.h> 41 41 #include <arch/mm/page.h> 42 #include <mm/km.h> 42 43 #include <typedefs.h> 43 44 #include <align.h> -
kernel/arch/sparc64/src/drivers/pci.c
r4dee0cb rd4673296 39 39 #include <genarch/ofw/upa.h> 40 40 #include <arch/trap/interrupt.h> 41 #include <mm/ page.h>41 #include <mm/km.h> 42 42 #include <mm/slab.h> 43 43 #include <typedefs.h> -
kernel/genarch/src/drivers/ega/ega.c
r4dee0cb rd4673296 37 37 #include <genarch/drivers/ega/ega.h> 38 38 #include <putchar.h> 39 #include <mm/ page.h>39 #include <mm/km.h> 40 40 #include <mm/as.h> 41 41 #include <mm/slab.h> 42 #include <arch/mm/page.h>43 42 #include <typedefs.h> 44 43 #include <arch/asm.h> -
kernel/genarch/src/drivers/s3c24xx_uart/s3c24xx_uart.c
r4dee0cb rd4673296 45 45 #include <mm/slab.h> 46 46 #include <mm/page.h> 47 #include <mm/km.h> 47 48 #include <sysinfo/sysinfo.h> 48 49 #include <str.h> -
kernel/genarch/src/fb/fb.c
r4dee0cb rd4673296 40 40 #include <console/console.h> 41 41 #include <sysinfo/sysinfo.h> 42 #include <mm/ page.h>42 #include <mm/km.h> 43 43 #include <mm/slab.h> 44 44 #include <align.h> -
kernel/generic/include/mm/km.h
r4dee0cb rd4673296 49 49 extern bool km_is_non_identity(uintptr_t); 50 50 51 extern uintptr_t hw_map(uintptr_t, size_t); 52 51 53 extern uintptr_t km_temporary_page_get(uintptr_t *, frame_flags_t); 52 54 extern void km_temporary_page_put(uintptr_t); -
kernel/generic/include/mm/page.h
r4dee0cb rd4673296 66 66 extern void map_structure(uintptr_t, size_t); 67 67 68 extern uintptr_t hw_map(uintptr_t, size_t);69 70 68 extern int page_find_mapping(uintptr_t, void **); 71 69 extern sysarg_t sys_page_find_mapping(uintptr_t, void *); -
kernel/generic/src/mm/km.c
r4dee0cb rd4673296 46 46 #include <debug.h> 47 47 #include <arch.h> 48 #include <align.h> 49 #include <macros.h> 50 #include <bitops.h> 48 51 49 52 static ra_arena_t *km_ni_arena; … … 120 123 ra_free(km_ni_arena, page, size); 121 124 } 125 126 uintptr_t hw_map(uintptr_t physaddr, size_t size) 127 { 128 uintptr_t virtaddr; 129 size_t asize; 130 size_t align; 131 pfn_t i; 132 133 asize = ALIGN_UP(size, PAGE_SIZE); 134 align = ispwr2(size) ? size : (1U << (fnzb(size) + 1)); 135 virtaddr = km_page_alloc(asize, max(PAGE_SIZE, align)); 136 137 page_table_lock(AS_KERNEL, true); 138 for (i = 0; i < ADDR2PFN(asize); i++) { 139 uintptr_t addr = PFN2ADDR(i); 140 page_mapping_insert(AS_KERNEL, virtaddr + addr, physaddr + addr, 141 PAGE_NOT_CACHEABLE | PAGE_WRITE); 142 } 143 page_table_unlock(AS_KERNEL, true); 144 145 return virtaddr; 146 } 147 122 148 123 149 /** Unmap kernen non-identity page. -
kernel/generic/src/mm/page.c
r4dee0cb rd4673296 65 65 #include <arch/mm/asid.h> 66 66 #include <mm/as.h> 67 #include <mm/km.h>68 67 #include <mm/frame.h> 69 68 #include <arch/barrier.h> … … 76 75 #include <errno.h> 77 76 #include <align.h> 78 #include <macros.h>79 #include <bitops.h>80 77 81 78 /** Virtual operations for page subsystem. */ … … 193 190 } 194 191 195 uintptr_t hw_map(uintptr_t physaddr, size_t size)196 {197 uintptr_t virtaddr;198 size_t asize;199 size_t align;200 pfn_t i;201 202 asize = ALIGN_UP(size, PAGE_SIZE);203 align = ispwr2(size) ? size : (1U << (fnzb(size) + 1));204 virtaddr = km_page_alloc(asize, max(PAGE_SIZE, align));205 206 page_table_lock(AS_KERNEL, true);207 for (i = 0; i < ADDR2PFN(asize); i++) {208 uintptr_t addr = PFN2ADDR(i);209 page_mapping_insert(AS_KERNEL, virtaddr + addr, physaddr + addr,210 PAGE_NOT_CACHEABLE | PAGE_WRITE);211 }212 page_table_unlock(AS_KERNEL, true);213 214 return virtaddr;215 }216 217 192 int page_find_mapping(uintptr_t virt, void **phys) 218 193 {
Note:
See TracChangeset
for help on using the changeset viewer.