aboutsummaryrefslogtreecommitdiffstats
path: root/MemoryMeter.c
diff options
context:
space:
mode:
authorAmit Pundir <amit.pundir@linaro.org>2012-04-17 15:05:59 +0530
committerAmit Pundir <amit.pundir@linaro.org>2012-04-17 15:05:59 +0530
commit96a11754a6950bfe50784c0877cb64b1ed7d2b18 (patch)
treeb977131bbbb4c3bd8ade370aab2e4fc913440c04 /MemoryMeter.c
downloadandroid_external_htop-96a11754a6950bfe50784c0877cb64b1ed7d2b18.tar.gz
android_external_htop-96a11754a6950bfe50784c0877cb64b1ed7d2b18.tar.bz2
android_external_htop-96a11754a6950bfe50784c0877cb64b1ed7d2b18.zip
add original htop code
htop-0.9 downloaded from http://archive.ubuntu.com/ubuntu/pool/universe/h/htop/htop_0.9.orig.tar.gz Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Diffstat (limited to 'MemoryMeter.c')
-rw-r--r--MemoryMeter.c70
1 files changed, 70 insertions, 0 deletions
diff --git a/MemoryMeter.c b/MemoryMeter.c
new file mode 100644
index 0000000..e3e18ec
--- /dev/null
+++ b/MemoryMeter.c
@@ -0,0 +1,70 @@
+/*
+htop
+(C) 2004-2010 Hisham H. Muhammad
+Released under the GNU GPL, see the COPYING file
+in the source distribution for its full text.
+*/
+
+#include "MemoryMeter.h"
+#include "Meter.h"
+
+#include "ProcessList.h"
+
+#include <stdlib.h>
+#include <curses.h>
+#include <string.h>
+#include <math.h>
+#include <sys/param.h>
+
+#include "debug.h"
+#include <assert.h>
+
+int MemoryMeter_attributes[] = {
+ MEMORY_USED, MEMORY_BUFFERS, MEMORY_CACHE
+};
+
+static void MemoryMeter_setValues(Meter* this, char* buffer, int size) {
+ long int usedMem = this->pl->usedMem;
+ long int buffersMem = this->pl->buffersMem;
+ long int cachedMem = this->pl->cachedMem;
+ usedMem -= buffersMem + cachedMem;
+ this->total = this->pl->totalMem;
+ this->values[0] = usedMem;
+ this->values[1] = buffersMem;
+ this->values[2] = cachedMem;
+ snprintf(buffer, size, "%ld/%ldMB", (long int) usedMem / 1024, (long int) this->total / 1024);
+}
+
+static void MemoryMeter_display(Object* cast, RichString* out) {
+ char buffer[50];
+ Meter* this = (Meter*)cast;
+ int k = 1024; const char* format = "%ldM ";
+ long int totalMem = this->total / k;
+ long int usedMem = this->values[0] / k;
+ long int buffersMem = this->values[1] / k;
+ long int cachedMem = this->values[2] / k;
+ RichString_write(out, CRT_colors[METER_TEXT], ":");
+ sprintf(buffer, format, totalMem);
+ RichString_append(out, CRT_colors[METER_VALUE], buffer);
+ sprintf(buffer, format, usedMem);
+ RichString_append(out, CRT_colors[METER_TEXT], "used:");
+ RichString_append(out, CRT_colors[MEMORY_USED], buffer);
+ sprintf(buffer, format, buffersMem);
+ RichString_append(out, CRT_colors[METER_TEXT], "buffers:");
+ RichString_append(out, CRT_colors[MEMORY_BUFFERS], buffer);
+ sprintf(buffer, format, cachedMem);
+ RichString_append(out, CRT_colors[METER_TEXT], "cache:");
+ RichString_append(out, CRT_colors[MEMORY_CACHE], buffer);
+}
+
+MeterType MemoryMeter = {
+ .setValues = MemoryMeter_setValues,
+ .display = MemoryMeter_display,
+ .mode = BAR_METERMODE,
+ .items = 3,
+ .total = 100.0,
+ .attributes = MemoryMeter_attributes,
+ "Memory",
+ "Memory",
+ "Mem"
+};