Changeset bcdd9aa in mainline
- Timestamp:
- 2005-08-30T09:44:07Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- dfbc229
- Parents:
- a6f8899
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia32/src/proc/scheduler.c
ra6f8899 rbcdd9aa 31 31 #include <proc/thread.h> 32 32 #include <arch.h> 33 #include <arch/context.h> /* SP_DELTA */ 33 34 34 35 void before_thread_runs_arch(void) 35 36 { 36 CPU->arch.tss->esp0 = (__address) &THREAD->kstack[THREAD_STACK_SIZE- 8];37 CPU->arch.tss->esp0 = (__address) &THREAD->kstack[THREAD_STACK_SIZE-SP_DELTA]; 37 38 CPU->arch.tss->ss0 = selector(KDATA_DES); 38 39 } -
include/arch.h
ra6f8899 rbcdd9aa 65 65 #define THE ((the_t *)(get_stack_base())) 66 66 67 extern void the_initialize(the_t *the); 68 extern void the_copy(the_t *src, the_t *dst); 69 67 70 extern void arch_pre_mm_init(void); 68 71 extern void arch_post_mm_init(void); -
src/Makefile
ra6f8899 rbcdd9aa 17 17 lib/list.c \ 18 18 lib/memstr.c \ 19 lib/the.c \ 19 20 debug/print.c \ 20 21 time/clock.c \ -
src/main/main.c
ra6f8899 rbcdd9aa 135 135 thread_t *t; 136 136 137 THE->preemption_disabled = 0; 138 THE->cpu = NULL; 139 THE->thread = NULL; 140 THE->task = NULL; 137 the_initialize(THE); 141 138 142 139 arch_pre_mm_init(); -
src/proc/scheduler.c
ra6f8899 rbcdd9aa 253 253 254 254 /* 255 * Through the 'THE' structure, we keep track of THREAD, TASK, CPU 256 * and preemption counter. At this point THE could be coming either 257 * from THREAD's or CPU's stack. 258 */ 259 the_copy(THE, (the_t *) CPU->stack); 260 261 /* 255 262 * We may not keep the old stack. 256 263 * Reason: If we kept the old stack and got blocked, for instance, in … … 398 405 #endif 399 406 407 the_copy(THE, (the_t *) THREAD->kstack); 408 400 409 context_restore(&THREAD->saved_context); 401 410 /* not reached */ -
src/proc/thread.c
ra6f8899 rbcdd9aa 197 197 context_save(&t->saved_context); 198 198 context_set(&t->saved_context, FADDR(cushion), t->kstack, THREAD_STACK_SIZE); 199 200 the_initialize((the_t *) t->kstack); 199 201 200 202 pri = cpu_priority_high();
Note:
See TracChangeset
for help on using the changeset viewer.