Subversion Repositories Kolibri OS

Rev

Rev 8634 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. int cmd_ps(char param[])
  3. {
  4.  
  5.         int             i, n, sel;
  6.         char            *buf1k;
  7.         unsigned        PID;
  8.         short           STATE;
  9.  
  10.         buf1k = malloc(1024);
  11.         if (NULL == buf1k)
  12.                 return FALSE;
  13.  
  14.         sel = param && strlen(param) > 0;
  15.  
  16.         printf ("      PID        NAME RAM KB\n\r", PID, buf1k+10);
  17.  
  18.         for (i = 1;;i++) {
  19.                 n = kol_process_info(i, buf1k);
  20.                 memcpy(&PID, buf1k+30 ,sizeof(unsigned));
  21.                 STATE = *(buf1k+50);
  22.                 if (9 != STATE) {
  23.                         if (!sel || 0 == strnicmp(param, buf1k+10, 10)) {
  24.                                 printf ("  %7u %11s %d\n\r", PID, buf1k+10, (*(int*)(buf1k+26)+1)/1024);
  25.                                 if (sel) {
  26.                                         LAST_PID = PID;
  27.                                         int cpu_tck = kol_system_cpufreq() / 100;
  28.                                         printf ("  CPU %d%% RAM %d\n\r", *(int*)buf1k / cpu_tck , *(int*)(buf1k+26)+1);
  29.                                 }
  30.                         }
  31.                 }
  32.                 if (i == n)
  33.                         break;
  34.         }
  35.  
  36.         free(buf1k);
  37.         return TRUE;
  38.  
  39. }
  40.  
  41.