Changeset d4673296 in mainline for kernel/generic/src/mm/km.c
- Timestamp:
- 2012-01-27T21:12:25Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- adec5b45
- Parents:
- 4dee0cb
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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.
Note:
See TracChangeset
for help on using the changeset viewer.