Changeset 89c57b6 in mainline for kernel/arch/ia32/src/proc/scheduler.c
- Timestamp:
- 2011-04-13T14:45:41Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 88634420
- Parents:
- cefb126 (diff), 17279ead (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. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia32/src/proc/scheduler.c
rcefb126 r89c57b6 38 38 #include <proc/thread.h> 39 39 #include <arch.h> 40 #include <arch/ context.h> /* SP_DELTA */40 #include <arch/interrupt.h> 41 41 #include <arch/pm.h> 42 42 #include <arch/asm.h> … … 58 58 void before_thread_runs_arch(void) 59 59 { 60 uintptr_t kstk = (uintptr_t) &THREAD->kstack[THREAD_STACK_SIZE - 61 SP_DELTA]; 60 uintptr_t kstk = (uintptr_t) &THREAD->kstack[THREAD_STACK_SIZE]; 62 61 63 62 if (CPU->arch.fi.bits.sep) { 64 63 /* Set kernel stack for CP3 -> CPL0 switch via SYSENTER */ 65 write_msr(IA32_MSR_SYSENTER_ESP, kstk );64 write_msr(IA32_MSR_SYSENTER_ESP, kstk - sizeof(istate_t)); 66 65 } 67 66 68 67 /* Set kernel stack for CPL3 -> CPL0 switch via interrupt */ 69 68 CPU->arch.tss->esp0 = kstk; 70 CPU->arch.tss->ss0 = gdtselector(KDATA_DES);69 CPU->arch.tss->ss0 = GDT_SELECTOR(KDATA_DES); 71 70 72 71 /* Set up TLS in GS register */
Note:
See TracChangeset
for help on using the changeset viewer.