[BACK]Return to display.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / top

Diff for /src/usr.bin/top/display.c between version 1.49 and 1.50

version 1.49, 2015/05/06 07:53:29 version 1.50, 2015/10/26 12:44:22
Line 56 
Line 56 
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
 #include <unistd.h>  #include <unistd.h>
   #include <sys/sysctl.h>
   
 #include "screen.h"             /* interface to screen package */  #include "screen.h"             /* interface to screen package */
 #include "layout.h"             /* defines for screen position layout */  #include "layout.h"             /* defines for screen position layout */
Line 204 
Line 205 
         /* return number of lines available */          /* return number of lines available */
         return (display_lines);          return (display_lines);
 }  }
   static void
   format_uptime(char *buf, size_t buflen)
   {
           time_t now, uptime;
           int days, hrs, mins;
           int mib[2];
           size_t size;
           struct timeval boottime;
   
           now = time(NULL);
           /*
            * Print how long system has been up.
            * (Found by getting "boottime" from the kernel)
            */
           mib[0] = CTL_KERN;
           mib[1] = KERN_BOOTTIME;
           size = sizeof(boottime);
           if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1) {
                   uptime = now - boottime.tv_sec;
                   uptime += 30;
                   days = uptime / (3600 * 24);
                   uptime %= (3600 * 24);
                   hrs = uptime / 3600;
                   uptime %= 3600;
                   mins = uptime / 60;
                   if (days > 0)
                           snprintf(buf, buflen, "up %d day%s, %2d:%02d",
                               days, days > 1 ? "s" : "", hrs, mins);
                   else
                           snprintf(buf, buflen, "up %2d:%02d",
                               hrs, mins);
           }
   }
   
   
 void  void
 i_loadave(pid_t mpid, double *avenrun)  i_loadave(pid_t mpid, double *avenrun)
 {  {
Line 222 
Line 257 
                 for (i = 0; i < 3; i++)                  for (i = 0; i < 3; i++)
                         printwp("%c %5.2f", i == 0 ? ':' : ',', avenrun[i]);                          printwp("%c %5.2f", i == 0 ? ':' : ',', avenrun[i]);
         }          }
   
 }  }
   
 /*  /*
Line 272 
Line 308 
 {  {
         if (screen_length > 2 || !smart_terminal) {          if (screen_length > 2 || !smart_terminal) {
                 char procstates_buffer[MAX_COLS];                  char procstates_buffer[MAX_COLS];
                   char uptime[40];
   
                 move(1, 0);                  move(1, 0);
                 clrtoeol();                  clrtoeol();
Line 286 
Line 323 
                     states, procstate_names);                      states, procstate_names);
   
                 addstrp(procstates_buffer);                  addstrp(procstates_buffer);
   
                   format_uptime(uptime, sizeof(uptime));
                   if (smart_terminal)
                           move(1, screen_width - strlen(uptime));
                   else
                           printwp("  ");
                   printwp("%s", uptime);
                 putn();                  putn();
         }          }
 }  }

Legend:
Removed from v.1.49  
changed lines
  Added in v.1.50