Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 8f56d93 in mainline


Ignore:
Timestamp:
2010-04-02T13:35:19Z (12 years ago)
Author:
Stanislav Kozina <stanislav.kozina@…>
Branches:
lfn, master
Children:
8b2aba5
Parents:
175ad5c6
Message:

top echoes also task list

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/ps/taskinfo.h

    r175ad5c6 r8f56d93  
    4646
    4747typedef struct {
     48        task_id_t taskid;
    4849        char name[TASK_NAME_BUFLEN];
    4950        size_t pages;
  • kernel/generic/src/ps/ps.c

    r175ad5c6 r8f56d93  
    130130        spinlock_unlock(&tasks_lock);
    131131
     132        copy_to_uspace(&uspace_info->taskid, &t->taskid, sizeof(task_id_t));
    132133        copy_to_uspace(uspace_info->name, t->name, sizeof(t->name));
    133134
  • uspace/app/top/screen.c

    r175ad5c6 r8f56d93  
    3939#include <vfs/vfs.h>
    4040#include <load.h>
     41#include <kernel/ps/taskinfo.h>
     42#include <ps.h>
    4143#include "screen.h"
    4244#include "top.h"
     45
     46int rows;
     47int colls;
     48
     49#define WHITE 0xf0f0f0
     50#define BLACK 0x000000
    4351
    4452static void resume_normal(void)
    4553{
    4654        fflush(stdout);
    47         console_set_rgb_color(fphone(stdout), 0, 0xf0f0f0);
     55        console_set_rgb_color(fphone(stdout), 0, WHITE);
    4856}
    4957
    5058void screen_init(void)
    5159{
     60        console_get_size(fphone(stdout), &colls, &rows);
    5261        console_cursor_visibility(fphone(stdout), 0);
    5362        resume_normal();
     
    94103}
    95104
     105static inline void print_tasks(data_t *data, int row)
     106{
     107        int i;
     108        for (i = 0; i < (int)data->task_count; ++i) {
     109                if (row + i > rows)
     110                        return;
     111                task_info_t taskinfo;
     112                get_task_info(data->tasks[i], &taskinfo);
     113                printf("%8llu %8u %8u %12llu %12llu %s\n", taskinfo.taskid,
     114                        taskinfo.thread_count, taskinfo.pages, taskinfo.ucycles / 1000 / 1000,
     115                        taskinfo.kcycles / 1000 / 1000, taskinfo.name);
     116        }
     117}
     118
     119
     120static inline void print_head(void)
     121{
     122        fflush(stdout);
     123        console_set_rgb_color(fphone(stdout), WHITE, BLACK);
     124        printf("      ID  Threads    Pages      uCycles      kCycles Name");
     125        int i;
     126        for (i = 60; i < colls; ++i)
     127                puts(" ");
     128        fflush(stdout);
     129        console_set_rgb_color(fphone(stdout), BLACK, WHITE);
     130}
     131
    96132void print_data(data_t *data)
    97133{
     
    104140        puts("\n");
    105141        print_taskstat(data);
     142        puts("\n\n");
     143        print_head();
    106144        puts("\n");
     145        print_tasks(data, 4);
    107146        fflush(stdout);
    108147}
  • uspace/app/top/screen.h

    r175ad5c6 r8f56d93  
    3636#include "top.h"
    3737
     38extern int rows;
     39extern int colls;
     40
    3841extern void screen_init(void);
    3942extern void clear_screen(void);
Note: See TracChangeset for help on using the changeset viewer.