Changeset 2ee1ccc in mainline
- Timestamp:
- 2012-07-01T05:18:27Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- d71331b
- Parents:
- 49e6c6b4
- Location:
- kernel
- Files:
-
- 5 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/Makefile
r49e6c6b4 r2ee1ccc 255 255 generic/src/smp/ipi.c \ 256 256 generic/src/smp/smp.c \ 257 generic/src/smp/smp_call.c \ 257 258 generic/src/ipc/ipc.c \ 258 259 generic/src/ipc/sysipc.c \ -
kernel/arch/amd64/Makefile.inc
r49e6c6b4 r2ee1ccc 104 104 arch/$(KARCH)/src/smp/ipi.c \ 105 105 arch/$(KARCH)/src/smp/mps.c \ 106 arch/$(KARCH)/src/smp/smp_call.c \ 106 107 arch/$(KARCH)/src/smp/smp.c 107 108 endif -
kernel/arch/amd64/include/interrupt.h
r49e6c6b4 r2ee1ccc 69 69 #define VECTOR_TLB_SHOOTDOWN_IPI (IVT_FREEBASE + 1) 70 70 #define VECTOR_DEBUG_IPI (IVT_FREEBASE + 2) 71 #define VECTOR_SMP_CALL_IPI (IVT_FREEBASE + 3) 71 72 72 73 extern void (* disable_irqs_function)(uint16_t); -
kernel/arch/amd64/src/interrupt.c
r49e6c6b4 r2ee1ccc 54 54 #include <symtab.h> 55 55 #include <stacktrace.h> 56 #include <smp/smp_call.h> 56 57 57 58 /* … … 161 162 tlb_shootdown_ipi_recv(); 162 163 } 164 165 static void arch_smp_call_ipi_recv(unsigned int n, istate_t *istate) 166 { 167 trap_virtual_eoi(); 168 smp_call_ipi_recv(); 169 } 163 170 #endif 164 171 … … 222 229 exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown", true, 223 230 (iroutine_t) tlb_shootdown_ipi); 231 exc_register(VECTOR_SMP_CALL_IPI, "smp_call", true, 232 (iroutine_t) arch_smp_call_ipi_recv); 224 233 #endif 225 234 } -
kernel/arch/ia32/Makefile.inc
r49e6c6b4 r2ee1ccc 86 86 arch/$(KARCH)/src/smp/mps.c \ 87 87 arch/$(KARCH)/src/smp/smp.c \ 88 arch/$(KARCH)/src/smp/smp_call.c \ 88 89 arch/$(KARCH)/src/atomic.S \ 89 90 arch/$(KARCH)/src/smp/ipi.c \ -
kernel/arch/ia32/include/interrupt.h
r49e6c6b4 r2ee1ccc 69 69 #define VECTOR_TLB_SHOOTDOWN_IPI (IVT_FREEBASE + 1) 70 70 #define VECTOR_DEBUG_IPI (IVT_FREEBASE + 2) 71 #define VECTOR_SMP_CALL_IPI (IVT_FREEBASE + 3) 71 72 72 73 extern void (* disable_irqs_function)(uint16_t); -
kernel/arch/ia32/src/interrupt.c
r49e6c6b4 r2ee1ccc 54 54 #include <symtab.h> 55 55 #include <stacktrace.h> 56 #include <smp/smp_call.h> 56 57 57 58 /* … … 170 171 tlb_shootdown_ipi_recv(); 171 172 } 173 174 static void arch_smp_call_ipi_recv(unsigned int n, istate_t *istate) 175 { 176 trap_virtual_eoi(); 177 smp_call_ipi_recv(); 178 } 172 179 #endif 173 180 … … 230 237 exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown", true, 231 238 (iroutine_t) tlb_shootdown_ipi); 239 exc_register(VECTOR_SMP_CALL_IPI, "smp_call", true, 240 (iroutine_t) arch_smp_call_ipi_recv); 232 241 #endif 233 242 } -
kernel/generic/include/adt/list.h
r49e6c6b4 r2ee1ccc 258 258 } 259 259 260 /** Moves items of one list into another after the specified item. 261 * 262 * Inserts all items of @a list after item at @a pos in another list. 263 * Both lists may be empty. 264 * 265 * In order to insert the list at the beginning of another list, use: 266 * @code 267 * list_splice(&list_dest.head, &list_src); 268 * @endcode 269 * 270 * @param list Source list to move after pos. 271 * @param pos Source items will be placed after this item. 272 */ 273 NO_TRACE static inline void list_splice(list_t *list, link_t *pos) 274 { 275 link_t *pos_next = pos->next; 276 277 if (!list_empty(list)) { 278 link_t *first = list->head.next; 279 link_t *last = list->head.prev; 280 281 pos->next = first; 282 first->prev = pos; 283 284 last->next = pos_next; 285 pos_next->prev = last; 286 287 list_initialize(list); 288 } 289 } 290 260 291 /** Get n-th item in a list. 261 292 * -
kernel/generic/include/cpu.h
r49e6c6b4 r2ee1ccc 94 94 95 95 /** 96 * SMP calls to invoke on this CPU. 97 */ 98 SPINLOCK_DECLARE(smp_calls_lock); 99 list_t smp_pending_calls; 100 101 /** 96 102 * Stack used by scheduler when there is no running thread. 97 103 */ -
kernel/generic/src/main/main.c
r49e6c6b4 r2ee1ccc 75 75 #include <synch/waitq.h> 76 76 #include <synch/futex.h> 77 #include <smp/smp_call.h> 77 78 #include <arch/arch.h> 78 79 #include <arch.h> … … 247 248 arch_post_cpu_init(); 248 249 250 smp_call_init(); 249 251 clock_counter_init(); 250 252 timeout_init(); … … 348 350 void main_ap_separated_stack(void) 349 351 { 352 smp_call_init(); 353 350 354 /* 351 355 * Configure timeouts for this cpu.
Note:
See TracChangeset
for help on using the changeset viewer.