Changeset 26678e5 in mainline
- Timestamp:
- 2006-09-26T15:10:40Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 86b31ba9
- Parents:
- b44939b
- Location:
- kernel
- Files:
-
- 1 added
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/Makefile
rb44939b r26678e5 192 192 generic/src/synch/futex.c \ 193 193 generic/src/smp/ipi.c \ 194 generic/src/smp/smp.c \ 194 195 generic/src/ipc/ipc.c \ 195 196 generic/src/ipc/sysipc.c \ -
kernel/arch/amd64/src/amd64.c
rb44939b r26678e5 45 45 #include <arch/drivers/i8254.h> 46 46 #include <arch/drivers/i8259.h> 47 48 #ifdef CONFIG_SMP 49 #include <arch/smp/apic.h> 50 #endif 47 51 48 52 #include <arch/bios/bios.h> … … 157 161 } 158 162 163 void arch_post_cpu_init() 164 { 165 #ifdef CONFIG_SMP 166 if (config.cpu_active > 1) { 167 l_apic_init(); 168 l_apic_debug(); 169 } 170 #endif 171 } 172 159 173 void arch_pre_smp_init(void) 160 174 { -
kernel/arch/ia32/include/smp/mps.h
rb44939b r26678e5 121 121 } __attribute__ ((packed)); 122 122 123 124 extern waitq_t ap_completion_wq;125 126 123 extern struct smp_config_operations mps_config_operations; 127 124 128 125 extern void mps_init(void); 129 extern void kmp(void *arg);130 126 131 127 #endif -
kernel/arch/ia32/src/ia32.c
rb44939b r26678e5 63 63 #include <console/console.h> 64 64 65 #ifdef CONFIG_SMP 66 #include <arch/smp/apic.h> 67 #endif 68 65 69 void arch_pre_mm_init(void) 66 70 { … … 98 102 zone_merge_all(); 99 103 } 104 } 105 106 void arch_post_cpu_init() 107 { 108 #ifdef CONFIG_SMP 109 if (config.cpu_active > 1) { 110 l_apic_init(); 111 l_apic_debug(); 112 } 113 #endif 100 114 } 101 115 -
kernel/arch/ia32/src/smp/mps.c
rb44939b r26678e5 85 85 int l_intr_entry_cnt = 0; 86 86 87 waitq_t ap_completion_wq;88 89 87 /* 90 88 * Implementation of IA-32 SMP configuration interface. -
kernel/arch/ia32/src/smp/smp.c
rb44939b r26678e5 105 105 ASSERT(ops != NULL); 106 106 107 waitq_initialize(&ap_completion_wq);108 109 107 /* 110 108 * We need to access data in frame 0. -
kernel/arch/ia64/src/ia64.c
rb44939b r26678e5 90 90 } 91 91 92 void arch_post_cpu_init(void) 93 { 94 } 95 92 96 void arch_pre_smp_init(void) 93 97 { -
kernel/arch/mips32/src/mips32.c
rb44939b r26678e5 132 132 } 133 133 134 void arch_post_cpu_init(void) 135 { 136 } 137 134 138 void arch_pre_smp_init(void) 135 139 { -
kernel/arch/ppc32/src/ppc32.c
rb44939b r26678e5 83 83 } 84 84 85 void arch_post_cpu_init(void) 86 { 87 } 88 85 89 void arch_pre_smp_init(void) 86 90 { -
kernel/arch/ppc64/src/ppc64.c
rb44939b r26678e5 76 76 } 77 77 78 void arch_post_cpu_init(void) 79 { 80 } 81 78 82 void arch_pre_smp_init(void) 79 83 { -
kernel/arch/sparc64/src/sparc64.c
rb44939b r26678e5 79 79 } 80 80 81 void arch_post_cpu_init(void) 82 { 83 } 84 81 85 void arch_pre_smp_init(void) 82 86 { -
kernel/arch/xen32/src/xen32.c
rb44939b r26678e5 152 152 } 153 153 154 void arch_post_cpu_init(void) 155 { 156 } 157 154 158 void arch_pre_smp_init(void) 155 159 { -
kernel/generic/include/arch.h
rb44939b r26678e5 76 76 extern void arch_pre_mm_init(void); 77 77 extern void arch_post_mm_init(void); 78 extern void arch_post_cpu_init(void); 78 79 extern void arch_pre_smp_init(void); 79 80 extern void arch_post_smp_init(void); -
kernel/generic/include/smp/smp.h
rb44939b r26678e5 36 36 #define KERN_SMP_H_ 37 37 38 #include <synch/waitq.h> 39 40 extern waitq_t ap_completion_wq; 41 38 42 #ifdef CONFIG_SMP 39 43 extern void smp_init(void); 44 extern void kmp(void *arg); 40 45 #else 41 #define smp_init() ;46 #define smp_init() 42 47 #endif /* CONFIG_SMP */ 43 48 -
kernel/generic/src/main/kinit.c
rb44939b r26678e5 64 64 65 65 #ifdef CONFIG_SMP 66 #include < arch/smp/mps.h>66 #include <smp/smp.h> 67 67 #endif /* CONFIG_SMP */ 68 68 … … 95 95 #ifdef CONFIG_SMP 96 96 if (config.cpu_count > 1) { 97 waitq_initialize(&ap_completion_wq); 97 98 /* 98 99 * Create the kmp thread and wait for its completion. -
kernel/generic/src/main/main.c
rb44939b r26678e5 80 80 #include <adt/btree.h> 81 81 #include <console/klog.h> 82 83 #ifdef CONFIG_SMP84 #include <arch/smp/apic.h>85 #include <arch/smp/mps.h>86 #endif /* CONFIG_SMP */87 82 #include <smp/smp.h> 88 83 … … 272 267 * 273 268 * Executed by application processors, temporary stack 274 * is at ctx.sp which was set during B P boot.269 * is at ctx.sp which was set during BSP boot. 275 270 * This function passes control directly to 276 271 * main_ap_separated_stack(). … … 283 278 /* 284 279 * Incrementing the active CPU counter will guarantee that the 285 * pm_init() will not attempt to build GDT and IDT tables again. 286 * Neither frame_init() will do the complete thing. Neither cpu_init() 287 * will do. 280 * *_init() functions can find out that they need to 281 * do initialization for AP only. 288 282 */ 289 283 config.cpu_active++; … … 301 295 302 296 cpu_init(); 303 304 297 calibrate_delay_loop(); 305 306 l_apic_init(); 307 l_apic_debug(); 298 arch_post_cpu_init(); 308 299 309 300 the_copy(THE, (the_t *) CPU->stack);
Note:
See TracChangeset
for help on using the changeset viewer.