2009-03-11 16:42:29 +01:00
|
|
|
--- top.c
|
|
|
|
+++ top.c 2009-03-11 15:27:05.180786112 +0100
|
|
|
|
@@ -89,6 +89,10 @@ static int Monpidsidx = 0;
|
|
|
|
static char Msg_delayed [SMLBUFSIZ];
|
|
|
|
static int Msg_awaiting = 0;
|
|
|
|
|
|
|
|
+ /* Show memory by default as kB */
|
|
|
|
+static int shift = 10;
|
2009-05-15 21:45:51 +02:00
|
|
|
+#define S(X) (unsigned long)(((unsigned long long)(X)<<10)>>shift)
|
2009-03-11 16:42:29 +01:00
|
|
|
+
|
|
|
|
// This is the select() timeout. Clear it in sig handlers to avoid a race.
|
|
|
|
// (signal happens just as we are about to select() and thus does not
|
|
|
|
// break us out of the select(), causing us to delay until timeout)
|
|
|
|
@@ -3038,10 +3042,33 @@ skip:
|
|
|
|
// Display Memory and Swap stats
|
|
|
|
meminfo();
|
|
|
|
if (CHKw(Curwin, View_MEMORY) && (Screen_rows > Msg_row+3)) {
|
|
|
|
- show_special(0, fmtmk(MEMORY_line1
|
|
|
|
- , kb_main_total, kb_main_used, kb_main_free, kb_main_buffers));
|
|
|
|
- show_special(0, fmtmk(MEMORY_line2
|
|
|
|
- , kb_swap_total, kb_swap_used, kb_swap_free, kb_main_cached));
|
|
|
|
+ const char *line1, *line2;
|
|
|
|
+ if (kb_main_total > 9999999)
|
|
|
|
+ shift = 20;
|
|
|
|
+ if (kb_main_total > 9999999999)
|
|
|
|
+ shift = 30;
|
|
|
|
+ switch (shift) {
|
|
|
|
+ case 20:
|
|
|
|
+ line1 = MEMORY_line1m;
|
|
|
|
+ line2 = MEMORY_line2m;
|
|
|
|
+ break;
|
|
|
|
+ case 30:
|
|
|
|
+ line1 = MEMORY_line1g;
|
|
|
|
+ line2 = MEMORY_line2g;
|
|
|
|
+ break;
|
|
|
|
+ case 0:
|
|
|
|
+ line1 = MEMORY_line1b;
|
|
|
|
+ line2 = MEMORY_line2b;
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ case 10:
|
|
|
|
+ line1 = MEMORY_line1k;
|
|
|
|
+ line2 = MEMORY_line2k;
|
|
|
|
+ }
|
|
|
|
+ show_special(0, fmtmk(line1
|
|
|
|
+ , S(kb_main_total), S(kb_main_used), S(kb_main_free), S(kb_main_buffers)));
|
|
|
|
+ show_special(0, fmtmk(line2
|
|
|
|
+ , S(kb_swap_total), S(kb_swap_used), S(kb_swap_free), S(kb_main_cached)));
|
|
|
|
Msg_row += 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
--- top.h
|
|
|
|
+++ top.h 2009-03-11 15:14:15.888001315 +0100
|
|
|
|
@@ -392,17 +392,29 @@ typedef struct WIN_t {
|
|
|
|
" %#4.1f%% \02us,\03 %#4.1f%% \02sy,\03 %#4.1f%% \02ni,\03 %#4.1f%% \02id,\03 %#4.1f%% \02wa,\03 %#4.1f%% \02hi,\03 %#4.1f%% \02si\03\n"
|
|
|
|
#define STATES_line2x7 "%s\03" \
|
|
|
|
"%#5.1f%%\02us,\03%#5.1f%%\02sy,\03%#5.1f%%\02ni,\03%#5.1f%%\02id,\03%#5.1f%%\02wa,\03%#5.1f%%\02hi,\03%#5.1f%%\02si,\03%#5.1f%%\02st\03\n"
|
|
|
|
+#define MEMORY_line1b "Mem: \03" \
|
|
|
|
+ " %8lub \02total,\03 %8lub \02used,\03 %8lub \02free,\03 %8lub \02buffers\03\n"
|
|
|
|
+#define MEMORY_line2b "Swap:\03" \
|
|
|
|
+ " %8lub \02total,\03 %8lub \02used,\03 %8lub \02free,\03 %8lub \02cached\03\n"
|
|
|
|
#ifdef CASEUP_SUMMK
|
|
|
|
-#define MEMORY_line1 "Mem: \03" \
|
|
|
|
+#define MEMORY_line1k "Mem: \03" \
|
|
|
|
" %8luK \02total,\03 %8luK \02used,\03 %8luK \02free,\03 %8luK \02buffers\03\n"
|
|
|
|
-#define MEMORY_line2 "Swap:\03" \
|
|
|
|
+#define MEMORY_line2k "Swap:\03" \
|
|
|
|
" %8luK \02total,\03 %8luK \02used,\03 %8luK \02free,\03 %8luK \02cached\03\n"
|
|
|
|
#else
|
|
|
|
-#define MEMORY_line1 "Mem: \03" \
|
|
|
|
+#define MEMORY_line1k "Mem: \03" \
|
|
|
|
" %8luk \02total,\03 %8luk \02used,\03 %8luk \02free,\03 %8luk \02buffers\03\n"
|
|
|
|
-#define MEMORY_line2 "Swap:\03" \
|
|
|
|
+#define MEMORY_line2k "Swap:\03" \
|
|
|
|
" %8luk \02total,\03 %8luk \02used,\03 %8luk \02free,\03 %8luk \02cached\03\n"
|
|
|
|
#endif
|
|
|
|
+#define MEMORY_line1m "Mem: \03" \
|
|
|
|
+ " %8luM \02total,\03 %8luM \02used,\03 %8luM \02free,\03 %8luM \02buffers\03\n"
|
|
|
|
+#define MEMORY_line2m "Swap:\03" \
|
|
|
|
+ " %8luM \02total,\03 %8luM \02used,\03 %8luM \02free,\03 %8luM \02cached\03\n"
|
|
|
|
+#define MEMORY_line1g "Mem: \03" \
|
|
|
|
+ " %8luG \02total,\03 %8luG \02used,\03 %8luG \02free,\03 %8luG \02buffers\03\n"
|
|
|
|
+#define MEMORY_line2g "Swap:\03" \
|
|
|
|
+ " %8luG \02total,\03 %8luG \02used,\03 %8luG \02free,\03 %8luG \02cached\03\n"
|
|
|
|
|
|
|
|
// Keyboard Help specially formatted string(s) --
|
|
|
|
// see 'show_special' for syntax details + other cautions.
|
|
|
|
--- vmstat.c
|
|
|
|
+++ vmstat.c 2009-03-11 15:43:01.476001363 +0100
|
|
|
|
@@ -164,9 +164,9 @@ static void new_header(void){
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
-static unsigned long unitConvert(unsigned int size){
|
|
|
|
- float cvSize;
|
|
|
|
- cvSize=(float)size/dataUnit*((statMode==SLABSTAT)?1:1024);
|
|
|
|
+static unsigned long unitConvert(unsigned long size){
|
|
|
|
+ long double cvSize;
|
|
|
|
+ cvSize=(long double)size/dataUnit*((statMode==SLABSTAT)?1:1024);
|
|
|
|
return ((unsigned long) cvSize);
|
|
|
|
}
|
|
|
|
|