Changeset f56e897f in mainline for kernel/generic/src
- Timestamp:
- 2010-06-29T17:43:38Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 6473d41
- Parents:
- e4a4b44 (diff), 793cf029 (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. - Location:
- kernel/generic/src
- Files:
-
- 8 edited
-
debug/symtab.c (modified) (3 diffs)
-
interrupt/interrupt.c (modified) (1 diff)
-
ipc/sysipc.c (modified) (1 diff)
-
main/kinit.c (modified) (2 diffs)
-
mm/frame.c (modified) (2 diffs)
-
mm/tlb.c (modified) (4 diffs)
-
proc/program.c (modified) (1 diff)
-
smp/ipi.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/debug/symtab.c
re4a4b44 rf56e897f 46 46 /** Get name of a symbol that seems most likely to correspond to address. 47 47 * 48 * @param addr Address.49 * @param name Place to store pointer to the symbol name.50 * @param offset Place to store offset from the symbol address.48 * @param addr Address. 49 * @param name Place to store pointer to the symbol name. 50 * @param offset Place to store offset from the symbol address. 51 51 * 52 52 * @return Zero on success or negative error code, ENOENT if not found, … … 83 83 /** Lookup symbol by address and format for display. 84 84 * 85 * Returns name of closest corresponding symbol, "Not found" if none exists 86 * or "N/A" if no symbol information is available. 85 * Returns name of closest corresponding symbol, 86 * "unknown" if none exists and "N/A" if no symbol 87 * information is available. 87 88 * 88 89 * @param addr Address. … … 101 102 return name; 102 103 case ENOENT: 103 return " Not found";104 return "unknown"; 104 105 default: 105 106 return "N/A"; -
kernel/generic/src/interrupt/interrupt.c
re4a4b44 rf56e897f 143 143 uint64_t end_cycle = get_cycle(); 144 144 145 irq_spinlock_lock(&exctbl_lock, false); 145 146 exc_table[n].cycles += end_cycle - begin_cycle; 146 147 exc_table[n].count++; 148 irq_spinlock_unlock(&exctbl_lock, false); 147 149 148 150 /* Do not charge THREAD for exception cycles */ -
kernel/generic/src/ipc/sysipc.c
re4a4b44 rf56e897f 1150 1150 return (unative_t) rc; 1151 1151 1152 LOG("sys_ipc_connect_kbox(%" PRIu64 ") \n", taskid_arg.value);1152 LOG("sys_ipc_connect_kbox(%" PRIu64 ")", taskid_arg.value); 1153 1153 1154 1154 return ipc_connect_kbox(taskid_arg.value); -
kernel/generic/src/main/kinit.c
re4a4b44 rf56e897f 107 107 if (config.cpu_count > 1) { 108 108 waitq_initialize(&ap_completion_wq); 109 109 110 /* 110 111 * Create the kmp thread and wait for its completion. … … 124 125 thread_join(thread); 125 126 thread_detach(thread); 126 } 127 128 if (config.cpu_count > 1) { 127 128 /* 129 * For each CPU, create its load balancing thread. 130 */ 129 131 size_t i; 130 132 131 /*132 * For each CPU, create its load balancing thread.133 */134 133 for (i = 0; i < config.cpu_count; i++) { 135 134 thread = thread_create(kcpulb, NULL, TASK, THREAD_FLAG_WIRED, "kcpulb", true); -
kernel/generic/src/mm/frame.c
re4a4b44 rf56e897f 1234 1234 { 1235 1235 #ifdef __32_BITS__ 1236 printf("[nr] [base addr ] [frames ] [flags ] [free frames ] [busy frames ]\n");1236 printf("[nr] [base addr] [frames ] [flags ] [free frames ] [busy frames ]\n"); 1237 1237 #endif 1238 1238 1239 1239 #ifdef __64_BITS__ 1240 printf("[nr] [base address ] [frames ] [flags ] [free frames ] [busy frames ]\n");1240 printf("[nr] [base address ] [frames ] [flags ] [free frames ] [busy frames ]\n"); 1241 1241 #endif 1242 1242 … … 1274 1274 1275 1275 #ifdef __32_BITS__ 1276 printf(" %10p", base);1276 printf(" %10p", base); 1277 1277 #endif 1278 1278 1279 1279 #ifdef __64_BITS__ 1280 printf(" %18p", base);1280 printf(" %18p", base); 1281 1281 #endif 1282 1282 -
kernel/generic/src/mm/tlb.c
re4a4b44 rf56e897f 73 73 * to all other processors. 74 74 * 75 * @param type Type describing scope of shootdown.76 * @param asid Address space, if required by type.77 * @param page Virtual page address, if required by type.78 * @param count Number of pages, if required by type.75 * @param type Type describing scope of shootdown. 76 * @param asid Address space, if required by type. 77 * @param page Virtual page address, if required by type. 78 * @param count Number of pages, if required by type. 79 79 * 80 80 * @return The interrupt priority level as it existed prior to this call. 81 * 81 82 */ 82 83 ipl_t tlb_shootdown_start(tlb_invalidate_type_t type, asid_t asid, 83 84 uintptr_t page, size_t count) 84 85 { 85 ipl_t ipl; 86 87 ipl = interrupts_disable(); 86 ipl_t ipl = interrupts_disable(); 88 87 CPU->tlb_active = false; 89 88 irq_spinlock_lock(&tlblock, false); … … 91 90 size_t i; 92 91 for (i = 0; i < config.cpu_count; i++) { 93 cpu_t *cpu;94 95 92 if (i == CPU->id) 96 93 continue; 97 94 98 cpu = &cpus[i]; 95 cpu_t *cpu = &cpus[i]; 96 99 97 irq_spinlock_lock(&cpu->lock, false); 100 98 if (cpu->tlb_messages_count == TLB_MESSAGE_QUEUE_LEN) { … … 124 122 125 123 busy_wait: 126 for (i = 0; i < config.cpu_count; i++) 124 for (i = 0; i < config.cpu_count; i++) { 127 125 if (cpus[i].tlb_active) 128 126 goto busy_wait; 129 127 } 128 130 129 return ipl; 131 130 } … … 133 132 /** Finish TLB shootdown sequence. 134 133 * 135 * @param ipl Previous interrupt priority level. 134 * @param ipl Previous interrupt priority level. 135 * 136 136 */ 137 137 void tlb_shootdown_finalize(ipl_t ipl) -
kernel/generic/src/proc/program.c
re4a4b44 rf56e897f 145 145 146 146 program_loader = image_addr; 147 LOG("Registered program loader at 0x%" PRIp "\n",147 LOG("Registered program loader at 0x%" PRIp, 148 148 image_addr); 149 149 -
kernel/generic/src/smp/ipi.c
re4a4b44 rf56e897f 47 47 * @param ipi Message to broadcast. 48 48 * 49 * @bug The decision whether to actually send the IPI must be based50 * on a different criterion. The current version has51 * problems when some of the detected CPUs are marked52 * disabled in machine configuration.53 49 */ 54 50 void ipi_broadcast(int ipi) … … 60 56 */ 61 57 62 if ( (config.cpu_active > 1) && (config.cpu_active == config.cpu_count))58 if (config.cpu_count > 1) 63 59 ipi_broadcast_arch(ipi); 64 60 }
Note:
See TracChangeset
for help on using the changeset viewer.
