Changeset cd3b380 in mainline
- Timestamp:
- 2013-09-11T11:56:39Z (11 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1db5669
- Parents:
- 43dd8028
- Location:
- kernel
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/src/mm/vhpt.c
r43dd8028 rcd3b380 42 42 uintptr_t vhpt_set_up(void) 43 43 { 44 vhpt_base = (vhpt_entry_t *)45 PA2KA(frame_alloc(SIZE2FRAMES(VHPT_SIZE), FRAME_ATOMIC, 0));46 if (!vhpt_ base)44 uintptr_t vhpt_frame = 45 frame_alloc(SIZE2FRAMES(VHPT_SIZE), FRAME_ATOMIC, 0); 46 if (!vhpt_frame) 47 47 panic("Kernel configured with VHPT but no memory for table."); 48 48 49 vhpt_base = (vhpt_entry_t *) PA2KA(vhpt_frame); 49 50 vhpt_invalidate_all(); 50 51 return (uintptr_t) vhpt_base; -
kernel/arch/sparc64/src/mm/sun4u/as.c
r43dd8028 rcd3b380 63 63 { 64 64 #ifdef CONFIG_TSB 65 uintptr_t tsb_phys = 66 frame_alloc(SIZE2FRAMES((ITSB_ENTRY_COUNT + DTSB_ENTRY_COUNT) * 67 sizeof(tsb_entry_t)), flags, 0); 68 if (!tsb_phys) 69 return -1; 70 71 tsb_entry_t *tsb = (tsb_entry_t *) PA2KA(tsb_phys); 72 73 as->arch.itsb = tsb; 74 as->arch.dtsb = tsb + ITSB_ENTRY_COUNT; 75 76 memsetb(as->arch.itsb, (ITSB_ENTRY_COUNT + DTSB_ENTRY_COUNT) * 77 sizeof(tsb_entry_t), 0); 78 #endif 79 80 return 0; 81 } 82 83 int as_destructor_arch(as_t *as) 84 { 85 #ifdef CONFIG_TSB 65 86 size_t frames = SIZE2FRAMES((ITSB_ENTRY_COUNT + DTSB_ENTRY_COUNT) * 66 87 sizeof(tsb_entry_t)); 67 68 uintptr_t tsb = PA2KA(frame_alloc(frames, flags, 0)); 69 if (!tsb) 70 return -1; 71 72 as->arch.itsb = (tsb_entry_t *) tsb; 73 as->arch.dtsb = (tsb_entry_t *) (tsb + 74 ITSB_ENTRY_COUNT * sizeof(tsb_entry_t)); 75 76 memsetb(as->arch.itsb, 77 (ITSB_ENTRY_COUNT + DTSB_ENTRY_COUNT) * sizeof(tsb_entry_t), 0); 78 #endif 79 80 return 0; 81 } 82 83 int as_destructor_arch(as_t *as) 84 { 85 #ifdef CONFIG_TSB 86 /* 87 * The count must be calculated with respect to the emualted 16K page 88 * size. 89 */ 90 size_t cnt = ((ITSB_ENTRY_COUNT + DTSB_ENTRY_COUNT) * 91 sizeof(tsb_entry_t)) >> FRAME_WIDTH; 92 frame_free(KA2PA((uintptr_t) as->arch.itsb)); 93 94 return cnt; 88 frame_free(KA2PA((uintptr_t) as->arch.itsb), frames); 89 90 return frames; 95 91 #else 96 92 return 0; -
kernel/arch/sparc64/src/mm/sun4v/as.c
r43dd8028 rcd3b380 66 66 { 67 67 #ifdef CONFIG_TSB 68 size_t frames = 69 SIZE2FRAMES(TSB_ENTRY_COUNT * sizeof(tsb_entry_t)); 70 71 uintptr_t tsb = frame_alloc(frames, flags, 0); 68 uintptr_t tsb = 69 frame_alloc(SIZE2FRAMES(TSB_ENTRY_COUNT * sizeof(tsb_entry_t)), 70 flags, 0); 72 71 if (!tsb) 73 72 return -1; … … 91 90 { 92 91 #ifdef CONFIG_TSB 93 size_t cnt = (TSB_ENTRY_COUNT * sizeof(tsb_entry_t)) >> FRAME_WIDTH;94 frame_free( (uintptr_t) as->arch.tsb_description.tsb_base);92 size_t frames = SIZE2FRAMES(TSB_ENTRY_COUNT * sizeof(tsb_entry_t)); 93 frame_free(as->arch.tsb_description.tsb_base, frames); 95 94 96 return cnt;95 return frames; 97 96 #else 98 97 return 0; -
kernel/generic/src/cpu/cpu.c
r43dd8028 rcd3b380 73 73 size_t i; 74 74 for (i = 0; i < config.cpu_count; i++) { 75 cpus[i].stack = (uint8_t *) PA2KA(frame_alloc(STACK_FRAMES, 76 FRAME_LOWMEM | FRAME_ATOMIC, STACK_SIZE - 1)); 75 uintptr_t stack_phys = frame_alloc(STACK_FRAMES, 76 FRAME_LOWMEM | FRAME_ATOMIC, STACK_SIZE - 1); 77 if (!stack_phys) 78 panic("Cannot allocate CPU stack."); 79 80 cpus[i].stack = (uint8_t *) PA2KA(stack_phys); 77 81 cpus[i].id = i; 78 82 79 83 irq_spinlock_initialize(&cpus[i].lock, "cpus[].lock"); 80 84 81 unsigned int j; 82 for (j = 0; j < RQ_COUNT; j++) { 85 for (unsigned int j = 0; j < RQ_COUNT; j++) { 83 86 irq_spinlock_initialize(&cpus[i].rq[j].lock, "cpus[].rq[].lock"); 84 87 list_initialize(&cpus[i].rq[j].rq); -
kernel/generic/src/mm/frame.c
r43dd8028 rcd3b380 374 374 return; 375 375 376 frame->refcount = 1; 376 377 bitmap_set_range(&zone->bitmap, index, 1); 377 378 -
kernel/generic/src/mm/slab.c
r43dd8028 rcd3b380 182 182 size_t zone = 0; 183 183 184 void *data = (void *)185 PA2KA(frame_alloc_generic(cache->frames, flags, 0, &zone));186 if (!data )184 uintptr_t data_phys = 185 frame_alloc_generic(cache->frames, flags, 0, &zone); 186 if (!data_phys) 187 187 return NULL; 188 189 void *data = (void *) PA2KA(data_phys); 188 190 189 191 slab_t *slab; -
kernel/generic/src/proc/thread.c
r43dd8028 rcd3b380 192 192 kmflags &= ~FRAME_HIGHMEM; 193 193 194 thread->kstack = (uint8_t *)195 PA2KA(frame_alloc(STACK_FRAMES, kmflags, STACK_SIZE - 1));196 if (! thread->kstack) {194 uintptr_t stack_phys = 195 frame_alloc(STACK_FRAMES, kmflags, STACK_SIZE - 1); 196 if (!stack_phys) { 197 197 #ifdef CONFIG_FPU 198 198 if (thread->saved_fpu_context) … … 201 201 return -1; 202 202 } 203 204 thread->kstack = (uint8_t *) PA2KA(stack_phys); 203 205 204 206 #ifdef CONFIG_UDEBUG -
kernel/test/mm/falloc1.c
r43dd8028 rcd3b380 62 62 unsigned int allocated = 0; 63 63 for (unsigned int i = 0; i < (MAX_FRAMES / count); i++) { 64 frames[allocated] = 65 PA2KA(frame_alloc(count, FRAME_ATOMIC, 0)); 66 67 if (frames[allocated]) 64 frames[allocated] = frame_alloc(count, FRAME_ATOMIC, 0); 65 if (frames[allocated]) { 68 66 allocated++; 69 else {67 } else { 70 68 TPRINTF("done. "); 71 69 break; … … 84 82 85 83 for (unsigned int i = 0; i < allocated; i++) 86 frame_free( KA2PA(frames[i]), count);84 frame_free(frames[i], count); 87 85 88 86 TPRINTF("done.\n"); -
kernel/test/mm/falloc2.c
r43dd8028 rcd3b380 74 74 unsigned int allocated = 0; 75 75 for (unsigned int i = 0; i < (MAX_FRAMES / count); i++) { 76 frames[allocated] = 77 PA2KA(frame_alloc(count, FRAME_ATOMIC, 0)); 76 frames[allocated] = frame_alloc(count, FRAME_ATOMIC, 0); 78 77 if (frames[allocated]) { 79 memsetb((void *) frames[allocated], bytes, val);78 memsetb((void *) PA2KA(frames[allocated]), bytes, val); 80 79 allocated++; 81 80 } else … … 91 90 for (unsigned int i = 0; i < allocated; i++) { 92 91 for (size_t k = 0; k < bytes; k++) { 93 if (((uint8_t *) frames[i])[k] != val) {92 if (((uint8_t *) PA2KA(frames[i]))[k] != val) { 94 93 TPRINTF("Thread #%" PRIu64 " (cpu%u): " 95 94 "Unexpected data (%c) in block %zu offset %zu\n", 96 THREAD->tid, CPU->id, ((char *) frames[i])[k],95 THREAD->tid, CPU->id, ((char *) PA2KA(frames[i]))[k], 97 96 frames[i], k); 98 97 atomic_inc(&thread_fail); … … 100 99 } 101 100 } 102 frame_free( KA2PA(frames[i]), count);101 frame_free(frames[i], count); 103 102 } 104 103
Note:
See TracChangeset
for help on using the changeset viewer.