procps-3.2.7-ps-stime.patch 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. --- procps-3.2.7/ps/output.c.jitter 2007-04-26 13:15:47.000000000 +0200
  2. +++ procps-3.2.7/ps/output.c 2007-04-26 13:31:24.000000000 +0200
  3. @@ -77,7 +77,6 @@
  4. static int wide_signals; /* true if we have room */
  5. static unsigned long seconds_since_1970;
  6. -static unsigned long time_of_boot;
  7. static unsigned long page_shift;
  8. @@ -1952,7 +1951,6 @@
  9. // available space: page_size*outbuf_pages-SPACE_AMOUNT
  10. seconds_since_1970 = time(NULL);
  11. - time_of_boot = seconds_since_1970 - seconds_since_boot;
  12. meminfo();
  13. --- procps-3.2.7/ps/common.h.jitter 2005-01-27 04:43:22.000000000 +0100
  14. +++ procps-3.2.7/ps/common.h 2007-04-26 12:44:01.000000000 +0200
  15. @@ -302,6 +302,7 @@
  16. extern int screen_cols;
  17. extern int screen_rows;
  18. extern unsigned long seconds_since_boot;
  19. +extern unsigned long time_of_boot;
  20. extern selection_node *selection_list;
  21. extern unsigned simple_select;
  22. extern sort_node *sort_list;
  23. --- procps-3.2.7/ps/global.c.jitter 2005-10-30 01:43:34.000000000 +0200
  24. +++ procps-3.2.7/ps/global.c 2007-04-26 13:26:38.000000000 +0200
  25. @@ -70,6 +70,7 @@
  26. int screen_cols = -1;
  27. int screen_rows = -1;
  28. unsigned long seconds_since_boot = -1;
  29. +unsigned long time_of_boot = -1;
  30. selection_node *selection_list = (selection_node *)0xdeadbeef;
  31. unsigned simple_select = 0xffffffff;
  32. sort_node *sort_list = (sort_node *)0xdeadbeef; /* ready-to-use sort list */
  33. @@ -361,7 +362,23 @@
  34. look_up_our_self(&p);
  35. set_screen_size();
  36. set_personality();
  37. -
  38. + int fd;
  39. + char *buf[BUFFSIZE];
  40. + const char *b;
  41. +
  42. + /* get boot time from /proc/stat */
  43. + fd = open("/proc/stat", O_RDONLY, 0);
  44. + if (fd != -1) {
  45. + buf[BUFFSIZE-1] = 0;
  46. + read(fd, buf, BUFFSIZE-1);
  47. + b = strstr(buf, "btime ");
  48. + if (b) {
  49. + sscanf(b, "btime %lu", &time_of_boot);
  50. + seconds_since_boot = time(0) - time_of_boot;
  51. + }
  52. + close(fd);
  53. + }
  54. +
  55. all_processes = 0;
  56. bsd_c_option = 0;
  57. bsd_e_option = 0;
  58. @@ -380,7 +397,6 @@
  59. negate_selection = 0;
  60. page_size = getpagesize();
  61. running_only = 0;
  62. - seconds_since_boot = uptime(0,0);
  63. selection_list = NULL;
  64. simple_select = 0;
  65. sort_list = NULL;