Changeset 9c1ecf9 in mainline for arch/ia32/src/proc/scheduler.c
- Timestamp:
- 2006-04-13T18:27:09Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f52e54da
- Parents:
- 0ddeabc
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia32/src/proc/scheduler.c
r0ddeabc r9c1ecf9 37 37 #include <arch/asm.h> 38 38 39 /** Perform ia32 specific tasks needed before the new task is run. */ 39 /** Perform ia32 specific tasks needed before the new task is run. 40 * 41 * Interrupts are disabled. 42 */ 40 43 void before_task_runs_arch(void) 41 {42 }43 44 /** Perform ia32 specific tasks needed before the new thread is scheduled.45 *46 * THREAD is locked and interrupts are disabled.47 */48 void before_thread_runs_arch(void)49 44 { 50 45 size_t iomap_size; … … 52 47 descriptor_t *gdt_p; 53 48 54 CPU->arch.tss->esp0 = (__address) &THREAD->kstack[THREAD_STACK_SIZE-SP_DELTA];55 CPU->arch.tss->ss0 = selector(KDATA_DES);56 57 /* Set up TLS in GS register */58 set_tls_desc(THREAD->arch.tls);59 60 49 /* 61 50 * Switch the I/O Permission Bitmap, if necessary. 62 *63 * First, copy the I/O Permission Bitmap.64 * This needs to be changed so that the65 * copying is avoided if the same task66 * was already running and the iomap did67 * not change.68 51 */ 52 53 /* First, copy the I/O Permission Bitmap. */ 69 54 spinlock_lock(&TASK->lock); 70 55 iomap_size = TASK->arch.iomap_size; … … 81 66 gdt_setlimit(&gdt_p[TSS_DES], TSS_BASIC_SIZE + iomap_size - 1); 82 67 gdtr_load(&cpugdtr); 68 } 69 70 /** Perform ia32 specific tasks needed before the new thread is scheduled. 71 * 72 * THREAD is locked and interrupts are disabled. 73 */ 74 void before_thread_runs_arch(void) 75 { 76 CPU->arch.tss->esp0 = (__address) &THREAD->kstack[THREAD_STACK_SIZE-SP_DELTA]; 77 CPU->arch.tss->ss0 = selector(KDATA_DES); 78 79 /* Set up TLS in GS register */ 80 set_tls_desc(THREAD->arch.tls); 83 81 84 82 #ifdef CONFIG_DEBUG_AS_WATCHPOINT
Note:
See TracChangeset
for help on using the changeset viewer.