Changeset 22f7769 in mainline for src/proc/thread.c
- Timestamp:
- 2005-10-17T23:31:41Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4b2c872d
- Parents:
- 75eacab
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/proc/thread.c
r75eacab r22f7769 68 68 * function returns. 69 69 * 70 * cpu_priority_high() is assumed.70 * interrupts_disable() is assumed. 71 71 * 72 72 */ … … 80 80 81 81 spinlock_unlock(&THREAD->lock); 82 cpu_priority_low();82 interrupts_enable(); 83 83 84 84 f(arg); … … 113 113 cpu_t *cpu; 114 114 runq_t *r; 115 pri_t pri;115 ipl_t ipl; 116 116 int i, avg, send_ipi = 0; 117 117 118 pri = cpu_priority_high();118 ipl = interrupts_disable(); 119 119 120 120 spinlock_lock(&t->lock); 121 121 122 i = (t->pri < RQ_COUNT -1) ? ++t->pri : t->pri;122 i = (t->priority < RQ_COUNT -1) ? ++t->priority : t->priority; 123 123 124 124 cpu = CPU; … … 149 149 spinlock_unlock(&cpu->lock); 150 150 151 cpu_priority_restore(pri);151 interrupts_restore(ipl); 152 152 } 153 153 … … 172 172 t = (thread_t *) malloc(sizeof(thread_t)); 173 173 if (t) { 174 pri_t pri;174 ipl_t ipl; 175 175 176 176 spinlock_initialize(&t->lock); … … 181 181 } 182 182 183 pri = cpu_priority_high();183 ipl = interrupts_disable(); 184 184 spinlock_lock(&tidlock); 185 185 t->tid = ++last_tid; 186 186 spinlock_unlock(&tidlock); 187 cpu_priority_restore(pri);187 interrupts_restore(ipl); 188 188 189 189 memsetb(frame_ks, THREAD_STACK_SIZE, 0); … … 200 200 the_initialize((the_t *) t->kstack); 201 201 202 pri = cpu_priority_high();203 t->saved_context. pri = cpu_priority_read();204 cpu_priority_restore(pri);202 ipl = interrupts_disable(); 203 t->saved_context.ipl = interrupts_read(); 204 interrupts_restore(ipl); 205 205 206 206 t->thread_code = func; 207 207 t->thread_arg = arg; 208 208 t->ticks = -1; 209 t->pri = -1; /* start in rq[0] */209 t->priority = -1; /* start in rq[0] */ 210 210 t->cpu = NULL; 211 211 t->flags = 0; … … 228 228 * Register this thread in the system-wide list. 229 229 */ 230 pri = cpu_priority_high();230 ipl = interrupts_disable(); 231 231 spinlock_lock(&threads_lock); 232 232 list_append(&t->threads_link, &threads_head); … … 240 240 spinlock_unlock(&task->lock); 241 241 242 cpu_priority_restore(pri);242 interrupts_restore(ipl); 243 243 } 244 244 … … 255 255 void thread_exit(void) 256 256 { 257 pri_t pri;257 ipl_t ipl; 258 258 259 259 restart: 260 pri = cpu_priority_high();260 ipl = interrupts_disable(); 261 261 spinlock_lock(&THREAD->lock); 262 262 if (THREAD->timeout_pending) { /* busy waiting for timeouts in progress */ 263 263 spinlock_unlock(&THREAD->lock); 264 cpu_priority_restore(pri);264 interrupts_restore(ipl); 265 265 goto restart; 266 266 } … … 312 312 void thread_register_call_me(void (* call_me)(void *), void *call_me_with) 313 313 { 314 pri_t pri;315 316 pri = cpu_priority_high();314 ipl_t ipl; 315 316 ipl = interrupts_disable(); 317 317 spinlock_lock(&THREAD->lock); 318 318 THREAD->call_me = call_me; 319 319 THREAD->call_me_with = call_me_with; 320 320 spinlock_unlock(&THREAD->lock); 321 cpu_priority_restore(pri);322 } 321 interrupts_restore(ipl); 322 }
Note:
See TracChangeset
for help on using the changeset viewer.