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 } |