Changeset 9970a5a in mainline for kernel/generic/src/mm/page.c
- Timestamp:
- 2012-01-27T23:24:27Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 7b3b571, fe56c08a
- Parents:
- d81eaf94 (diff), 221c9ec (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/mm/page.c
rd81eaf94 r9970a5a 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.