Changeset 8cbf1c3 in mainline for kernel/generic/src
- Timestamp:
- 2013-09-09T23:13:10Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- e2a0d76
- Parents:
- c67dbd6
- Location:
- kernel/generic/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/cpu/cpu.c
rc67dbd6 r8cbf1c3 73 73 size_t i; 74 74 for (i = 0; i < config.cpu_count; i++) { 75 cpus[i].stack = (uint8_t *) frame_alloc(STACK_FRAMES,76 FRAME_LOWMEM | FRAME_ KA | FRAME_ATOMIC);75 cpus[i].stack = (uint8_t *) PA2KA(frame_alloc(STACK_FRAMES, 76 FRAME_LOWMEM | FRAME_ATOMIC, 0)); 77 77 cpus[i].id = i; 78 78 -
kernel/generic/src/ddi/ddi.c
rc67dbd6 r8cbf1c3 314 314 315 315 NO_TRACE static int dmamem_map(uintptr_t virt, size_t size, unsigned int map_flags, 316 unsigned int flags, void **phys)316 unsigned int flags, uintptr_t *phys) 317 317 { 318 318 ASSERT(TASK); … … 323 323 324 324 NO_TRACE static int dmamem_map_anonymous(size_t size, unsigned int map_flags, 325 unsigned int flags, void **phys, uintptr_t *virt, uintptr_t bound)325 unsigned int flags, uintptr_t *phys, uintptr_t *virt, uintptr_t bound) 326 326 { 327 327 ASSERT(TASK); … … 336 336 order = fnzb(pages - 1) + 1; 337 337 338 *phys = frame_alloc_noreserve(order, 0 );339 if (*phys == NULL)338 *phys = frame_alloc_noreserve(order, 0, 0); 339 if (*phys == 0) 340 340 return ENOMEM; 341 341 342 342 mem_backend_data_t backend_data; 343 backend_data.base = (uintptr_t)*phys;343 backend_data.base = *phys; 344 344 backend_data.frames = pages; 345 345 346 346 if (!as_area_create(TASK->as, map_flags, size, 347 347 AS_AREA_ATTR_NONE, &phys_backend, &backend_data, virt, bound)) { 348 frame_free_noreserve( (uintptr_t)*phys);348 frame_free_noreserve(*phys); 349 349 return ENOMEM; 350 350 } … … 387 387 */ 388 388 389 void *phys;389 uintptr_t phys; 390 390 int rc = dmamem_map((uintptr_t) virt_ptr, size, map_flags, 391 391 flags, &phys); … … 404 404 */ 405 405 406 void *phys;406 uintptr_t phys; 407 407 uintptr_t virt = (uintptr_t) -1; 408 408 int rc = dmamem_map_anonymous(size, map_flags, flags, -
kernel/generic/src/mm/frame.c
rc67dbd6 r8cbf1c3 873 873 874 874 return ADDR2PFN((uintptr_t) frame_alloc(order - FRAME_WIDTH, 875 FRAME_LOWMEM | FRAME_ATOMIC ));875 FRAME_LOWMEM | FRAME_ATOMIC, 0)); 876 876 } 877 877 … … 1024 1024 * 1025 1025 */ 1026 void *frame_alloc_generic(uint8_t order, frame_flags_t flags, size_t *pzone) 1026 uintptr_t frame_alloc_generic(uint8_t order, frame_flags_t flags, 1027 uintptr_t constraint, size_t *pzone) 1027 1028 { 1028 1029 size_t size = ((size_t) 1) << order; … … 1071 1072 if (!(flags & FRAME_NO_RESERVE)) 1072 1073 reserve_free(size); 1073 return NULL;1074 return 0; 1074 1075 } 1075 1076 … … 1126 1127 *pzone = znum; 1127 1128 1128 if (flags & FRAME_KA) 1129 return (void *) PA2KA(PFN2ADDR(pfn)); 1130 1131 return (void *) PFN2ADDR(pfn); 1132 } 1133 1134 void *frame_alloc(uint8_t order, frame_flags_t flags) 1135 { 1136 return frame_alloc_generic(order, flags, NULL); 1137 } 1138 1139 void *frame_alloc_noreserve(uint8_t order, frame_flags_t flags) 1140 { 1141 return frame_alloc_generic(order, flags | FRAME_NO_RESERVE, NULL); 1129 return PFN2ADDR(pfn); 1130 } 1131 1132 uintptr_t frame_alloc(uint8_t order, frame_flags_t flags, uintptr_t constraint) 1133 { 1134 return frame_alloc_generic(order, flags, constraint, NULL); 1135 } 1136 1137 uintptr_t frame_alloc_noreserve(uint8_t order, frame_flags_t flags, 1138 uintptr_t constraint) 1139 { 1140 return frame_alloc_generic(order, flags | FRAME_NO_RESERVE, constraint, 1141 NULL); 1142 1142 } 1143 1143 -
kernel/generic/src/mm/km.c
rc67dbd6 r8cbf1c3 249 249 * Allocate a frame, preferably from high memory. 250 250 */ 251 frame = (uintptr_t)frame_alloc(ONE_FRAME,252 FRAME_HIGHMEM | FRAME_ATOMIC | flags );251 frame = frame_alloc(ONE_FRAME, 252 FRAME_HIGHMEM | FRAME_ATOMIC | flags, 0); 253 253 if (frame) { 254 254 page = km_map(frame, PAGE_SIZE, … … 256 256 ASSERT(page); // FIXME 257 257 } else { 258 frame = (uintptr_t) frame_alloc(ONE_FRAME, 259 FRAME_LOWMEM | flags); 258 frame = frame_alloc(ONE_FRAME, FRAME_LOWMEM | flags, 0); 260 259 if (!frame) 261 260 return (uintptr_t) NULL; -
kernel/generic/src/mm/page.c
rc67dbd6 r8cbf1c3 169 169 } 170 170 171 int page_find_mapping(uintptr_t virt, void **phys)171 int page_find_mapping(uintptr_t virt, uintptr_t *phys) 172 172 { 173 173 page_table_lock(AS, true); … … 179 179 } 180 180 181 *phys = (void *)PTE_GET_FRAME(pte) +181 *phys = PTE_GET_FRAME(pte) + 182 182 (virt - ALIGN_DOWN(virt, PAGE_SIZE)); 183 183 … … 193 193 * 194 194 */ 195 sysarg_t sys_page_find_mapping(uintptr_t virt, void*phys_ptr)196 { 197 void *phys;195 sysarg_t sys_page_find_mapping(uintptr_t virt, uintptr_t *phys_ptr) 196 { 197 uintptr_t phys; 198 198 int rc = page_find_mapping(virt, &phys); 199 199 if (rc != EOK) -
kernel/generic/src/mm/slab.c
rc67dbd6 r8cbf1c3 182 182 size_t zone = 0; 183 183 184 void *data = frame_alloc_generic(cache->order, FRAME_KA | flags, &zone); 184 void *data = (void *) 185 PA2KA(frame_alloc_generic(cache->order, flags, 0, &zone)); 185 186 if (!data) { 186 187 return NULL; -
kernel/generic/src/proc/thread.c
rc67dbd6 r8cbf1c3 192 192 kmflags &= ~FRAME_HIGHMEM; 193 193 194 thread->kstack = (uint8_t *) frame_alloc(STACK_FRAMES, FRAME_KA | kmflags); 194 thread->kstack = (uint8_t *) 195 PA2KA(frame_alloc(STACK_FRAMES, kmflags, 0)); 195 196 if (!thread->kstack) { 196 197 #ifdef CONFIG_FPU -
kernel/generic/src/time/clock.c
rc67dbd6 r8cbf1c3 81 81 void clock_counter_init(void) 82 82 { 83 void *faddr = frame_alloc(ONE_FRAME, FRAME_ATOMIC);84 if ( !faddr)83 uintptr_t faddr = frame_alloc(ONE_FRAME, FRAME_ATOMIC, 0); 84 if (faddr == 0) 85 85 panic("Cannot allocate page for clock."); 86 86 … … 91 91 uptime->useconds = 0; 92 92 93 clock_parea.pbase = (uintptr_t)faddr;93 clock_parea.pbase = faddr; 94 94 clock_parea.frames = 1; 95 95 clock_parea.unpriv = true;
Note:
See TracChangeset
for help on using the changeset viewer.