Subversion Repositories Kolibri OS

Rev

Rev 8633 | Go to most recent revision | 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.         {
  20.         n = kol_process_info(i, buf1k);
  21.         memcpy(&PID, buf1k+30 ,sizeof(unsigned));
  22.         STATE = *(buf1k+50);
  23.         if (9 != STATE)
  24.                 {
  25.                 if (!sel || 0 == strnicmp(param, buf1k+10, 10))
  26.                         {
  27.                         printf ("  %7u %11s %d\n\r", PID, buf1k+10, (*(int*)(buf1k+26)+1)/1024);
  28.                         if (sel)
  29.                                 {
  30.                                         LAST_PID = PID;
  31.                                         int cpu_tck = kol_system_cpufreq() / 100;
  32.                                         printf ("  CPU %d%% RAM %d\n\r", *(int*)buf1k / cpu_tck , *(int*)(buf1k+26)+1);
  33.                                 }
  34.                         }
  35.                 }
  36.         if (i == n)
  37.                 break;
  38.         }
  39.  
  40. free(buf1k);
  41. return TRUE;
  42.  
  43. }
  44.  
  45.