diff options
author | Amit Pundir <amit.pundir@linaro.org> | 2012-04-17 15:05:59 +0530 |
---|---|---|
committer | Amit Pundir <amit.pundir@linaro.org> | 2012-04-17 15:05:59 +0530 |
commit | 96a11754a6950bfe50784c0877cb64b1ed7d2b18 (patch) | |
tree | b977131bbbb4c3bd8ade370aab2e4fc913440c04 /MemoryMeter.c | |
download | android_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.c | 70 |
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" +}; |