Functions | |
| void | ps () |
| Print the state of every process from the ready, wait and zombie queues. | |
|
|
Print the state of every process from the ready, wait and zombie queues.
Definition at line 1234 of file task.c.
01235 {
01236 task_t *p;
01237 int count, i;
01238
01239 if ((p = curr_task)==NULL) return;
01240
01241 // Header //
01242 kprintf("\n\rPID STATE CONSOLE CMD");
01243
01244 sched_enter_critical_region();
01245
01246 // Ready processes //
01247 for(i=0, count=count_queue(&ready_queue); i<count; i++)
01248 {
01249 // Get the next task in the ready queue //
01250 p = pick_queue(&ready_queue);
01251
01252 // Print process informations //
01253 kprintf("\n\r%u", p->pid);
01254 gotoxy(12, -1);
01255 kputchar('R');
01256 gotoxy(22, -1);
01257 if (p->console)
01258 kprintf("tty%u", p->console);
01259 else
01260 kputchar('?');
01261 gotoxy(34, -1);
01262 kprintf("%s", p->name);
01263 }
01264
01265 // Wait processes //
01266 for(i=0, count=count_queue(&wait_queue); i<count; i++)
01267 {
01268 // Get the next task in the wait queue //
01269 p = pick_queue(&wait_queue);
01270
01271 // Print process informations //
01272 kprintf("\n\r%u", p->pid);
01273 gotoxy(12, -1);
01274 kputchar('W');
01275 gotoxy(22, -1);
01276 if (p->console)
01277 kprintf("tty%u", p->console);
01278 else
01279 kputchar('?');
01280 gotoxy(34, -1);
01281 kprintf("%s", p->name);
01282 }
01283
01284 // Zombie processes //
01285 for(i=0, count=count_queue(&zombie_queue); i<count; i++)
01286 {
01287 // Get the next task in the zombie queue //
01288 p = pick_queue(&zombie_queue);
01289
01290 // Print process informations //
01291 kprintf("\n\r%u", p->pid);
01292 gotoxy(12, -1);
01293 kputchar('Z');
01294 gotoxy(22, -1);
01295 if (p->console)
01296 kprintf("tty%u", p->console);
01297 else
01298 kputchar('?');
01299 gotoxy(34, -1);
01300 kprintf("%s", p->name);
01301 }
01302
01303 sched_leave_critical_region();
01304
01305 kprintf("\n\r");
01306 }
|
1.2.18