Ignore:
Timestamp:
2008-10-05T21:20:13Z (16 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
6198611
Parents:
1d132ae
Message:

Support for SYSENTER on ia32.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia32/src/proc/scheduler.c

    r1d132ae rf2ef7fd  
    5959void before_thread_runs_arch(void)
    6060{
    61         CPU->arch.tss->esp0 = (uintptr_t) &THREAD->kstack[THREAD_STACK_SIZE -
     61        uintptr_t kstk = (uintptr_t) &THREAD->kstack[THREAD_STACK_SIZE -
    6262            SP_DELTA];
     63
     64        /* Set kernel stack for CP3 -> CPL0 switch via SYSENTER */
     65        write_msr(IA32_MSR_SYSENTER_ESP, kstk);
     66
     67        /* Set kernel stack for CPL3 -> CPL0 switch via interrupt */
     68        CPU->arch.tss->esp0 = kstk;
    6369        CPU->arch.tss->ss0 = selector(KDATA_DES);
    6470
Note: See TracChangeset for help on using the changeset viewer.