Changeset ff14c520 in mainline for generic/src
- Timestamp:
- 2006-03-16T22:31:39Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 93165be
- Parents:
- 37c57f2
- Location:
- generic/src
- Files:
-
- 5 edited
-
main/kinit.c (modified) (4 diffs)
-
main/main.c (modified) (2 diffs)
-
proc/scheduler.c (modified) (2 diffs)
-
proc/task.c (modified) (5 diffs)
-
proc/thread.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
generic/src/main/kinit.c
r37c57f2 rff14c520 81 81 * Just a beautification. 82 82 */ 83 if ((t = thread_create(kmp, NULL, TASK, 0 ))) {83 if ((t = thread_create(kmp, NULL, TASK, 0, "kmp"))) { 84 84 spinlock_lock(&t->lock); 85 85 t->flags |= X_WIRED; … … 106 106 for (i = 0; i < config.cpu_count; i++) { 107 107 108 if ((t = thread_create(kcpulb, NULL, TASK, 0 ))) {108 if ((t = thread_create(kcpulb, NULL, TASK, 0, "kcpulb"))) { 109 109 spinlock_lock(&t->lock); 110 110 t->flags |= X_WIRED; … … 127 127 * Create kernel console. 128 128 */ 129 if ((t = thread_create(kconsole, "kconsole", TASK, 0 )))129 if ((t = thread_create(kconsole, "kconsole", TASK, 0, "kconsole"))) 130 130 thread_ready(t); 131 131 else … … 143 143 panic("init[%d].addr is not frame aligned", i); 144 144 145 utask = task_run_program((void *) init.tasks[i].addr );145 utask = task_run_program((void *) init.tasks[i].addr, "USPACE"); 146 146 if (utask) { 147 147 if (!ipc_phone_0) -
generic/src/main/main.c
r37c57f2 rff14c520 197 197 * Create kernel task. 198 198 */ 199 k = task_create(AS_KERNEL );199 k = task_create(AS_KERNEL, "KERNEL"); 200 200 if (!k) 201 201 panic("can't create kernel task\n"); … … 204 204 * Create the first thread. 205 205 */ 206 t = thread_create(kinit, NULL, k, 0 );206 t = thread_create(kinit, NULL, k, 0, "kinit"); 207 207 if (!t) 208 208 panic("can't create kinit thread\n"); -
generic/src/proc/scheduler.c
r37c57f2 rff14c520 618 618 * let's not be interrupted */ 619 619 ipl = interrupts_disable(); 620 printf("Scheduler dump:\n");621 620 for (cpu=0;cpu < config.cpu_count; cpu++) { 622 621 … … 625 624 626 625 spinlock_lock(&cpus[cpu].lock); 627 printf("cpu%d: nrdy: %d, needs_relink:%d\n",628 cpus[cpu].id, atomic_get(&cpus[cpu].nrdy), cpus[cpu].needs_relink);626 printf("cpu%d: address=%P, nrdy=%d, needs_relink=%d\n", 627 cpus[cpu].id, &cpus[cpu], atomic_get(&cpus[cpu].nrdy), cpus[cpu].needs_relink); 629 628 630 629 for (i=0; i<RQ_COUNT; i++) { -
generic/src/proc/task.c
r37c57f2 rff14c520 63 63 * 64 64 * @param as Task's address space. 65 * @param name Symbolic name. 65 66 * 66 67 * @return New task's structure 67 68 * 68 69 */ 69 task_t *task_create(as_t *as )70 task_t *task_create(as_t *as, char *name) 70 71 { 71 72 ipl_t ipl; … … 79 80 list_initialize(&ta->tasks_link); 80 81 ta->as = as; 82 ta->name = name; 81 83 82 84 … … 102 104 /** Create new task with 1 thread and run it 103 105 * 106 * @param programe_addr Address of program executable image. 107 * @param name Program name. 108 * 104 109 * @return Task of the running program or NULL on error 105 110 */ 106 task_t * task_run_program(void *program_addr )111 task_t * task_run_program(void *program_addr, char *name) 107 112 { 108 113 as_t *as; … … 120 125 } 121 126 122 task = task_create(as );127 task = task_create(as, name); 123 128 t = thread_create(uinit, (void *)((elf_header_t *)program_addr)->e_entry, 124 task, THREAD_USER_STACK);129 task, 0, "uinit"); 125 130 126 131 /* … … 149 154 t = list_get_instance(cur, task_t, tasks_link); 150 155 spinlock_lock(&t->lock); 151 printf(" Task: %Q ActiveCalls: %d", t->taskid,152 atomic_get(&t->active_calls));156 printf("%s: address=%P, taskid=%Q, as=%P, ActiveCalls: %d", 157 t->name, t, t->taskid, t->as, atomic_get(&t->active_calls)); 153 158 for (i=0; i < IPC_MAX_PHONES; i++) { 154 159 if (t->phones[i].callee) -
generic/src/proc/thread.c
r37c57f2 rff14c520 249 249 * @param task Task to which the thread belongs. 250 250 * @param flags Thread flags. 251 * @param name Symbolic name. 251 252 * 252 253 * @return New thread's structure on success, NULL on failure. 253 254 * 254 255 */ 255 thread_t *thread_create(void (* func)(void *), void *arg, task_t *task, int flags )256 thread_t *thread_create(void (* func)(void *), void *arg, task_t *task, int flags, char *name) 256 257 { 257 258 thread_t *t; … … 280 281 interrupts_restore(ipl); 281 282 283 t->name = name; 282 284 t->thread_code = func; 283 285 t->thread_arg = arg; … … 410 412 for (cur=threads_head.next; cur!=&threads_head; cur=cur->next) { 411 413 t = list_get_instance(cur, thread_t, threads_link); 412 printf("Thr: %d(%s) ", t->tid, thread_states[t->state]); 414 printf("%s: address=%P, tid=%d, state=%s, task=%P, code=%P, stack=%P, cpu=", 415 t->name, t, t->tid, thread_states[t->state], t->task, t->thread_code, t->kstack); 413 416 if (t->cpu) 414 417 printf("cpu%d ", t->cpu->id); 418 else 419 printf("none"); 415 420 printf("\n"); 416 421 }
Note:
See TracChangeset
for help on using the changeset viewer.
