Changeset 8b2aba5 in mainline for uspace/app/top/top.c
- Timestamp:
- 2010-04-02T20:22:14Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade
- Children:
- ee35ba0b
- Parents:
- 8f56d93
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/top/top.c
r8f56d93 r8b2aba5 38 38 #include <stdlib.h> 39 39 #include <unistd.h> 40 #include <io/console.h>41 40 #include <uptime.h> 42 41 #include <task.h> … … 55 54 #define MINUTE 60 56 55 57 static void read_ vars(data_t *target)56 static void read_data(data_t *target) 58 57 { 59 58 /* Read current time */ … … 80 79 /* Read task ids */ 81 80 target->task_count = get_tasks(&target->tasks); 81 82 /* Read cpu infos */ 83 target->cpu_count = get_cpu_infos(&target->cpus); 82 84 } 85 86 static void free_data(data_t *target) 87 { 88 free(target->tasks); 89 } 90 91 static inline void swap(data_t *first, data_t *second) 92 { 93 data_t *temp; 94 temp = first; 95 first = second; 96 second = temp; 97 } 98 99 static data_t data[2]; 83 100 84 101 int main(int argc, char *argv[]) 85 102 { 86 data_t old_data;87 data_t new_data;103 data_t *data1 = &data[0]; 104 data_t *data2 = &data[1]; 88 105 89 106 /* Read initial stats */ 90 107 printf("Reading initial data...\n"); 91 read_ vars(&old_data);108 read_data(data1); 92 109 sleep(UPDATE_INTERVAL); 93 read_vars(&new_data); 94 print_data(&new_data); 95 fflush(stdout); 110 read_data(data2); 96 111 97 112 screen_init(); 113 print_data(data2); 98 114 99 115 /* And paint screen until death... */ … … 101 117 char c = tgetchar(UPDATE_INTERVAL); 102 118 if (c < 0) { 103 read_vars(&new_data); 104 print_data(&new_data); 119 free_data(data1); 120 swap(data1, data2); 121 read_data(data2); 122 print_data(data2); 105 123 continue; 106 124 } 107 125 switch (c) { 108 126 case 'q': 127 clear_screen(); 109 128 return 0; 110 129 default: 111 moveto(10,10); 112 printf("Unknown command: %c", c); 113 fflush(stdout); 130 PRINT_WARNING("Unknown command: %c", c); 114 131 break; 115 132 } … … 117 134 } 118 135 119 free(new_data.tasks); 120 puts("\n\n"); 121 fflush(stdout); 136 free_data(data1); 137 free_data(data2); 122 138 return 0; 123 139 }
Note:
See TracChangeset
for help on using the changeset viewer.