summaryrefslogtreecommitdiffstats
path: root/MemoryMeter.c
diff options
context:
space:
mode:
authorChristian Göttsche <cgzones@googlemail.com>2021-03-03 19:48:30 +0100
committerBenBE <BenBE@geshi.org>2021-03-15 22:34:14 +0100
commitd9f2eacbc5b3fccf63b24944ce9a30d762baea3c (patch)
tree1d8f44915c8f06b305cf820c1bb4bef05ac01bd7 /MemoryMeter.c
parenta4173f52097fd78d0dab2e3296514e7dc7e54660 (diff)
Linux: individually show shared memory
Shmem: Total memory used by shared memory (shmem) and tmpfs Source: https://www.kernel.org/doc/Documentation/filesystems/proc.txt Closes: #556
Diffstat (limited to 'MemoryMeter.c')
-rw-r--r--MemoryMeter.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/MemoryMeter.c b/MemoryMeter.c
index 7075f229..0304bb9a 100644
--- a/MemoryMeter.c
+++ b/MemoryMeter.c
@@ -18,7 +18,8 @@ in the source distribution for its full text.
static const int MemoryMeter_attributes[] = {
MEMORY_USED,
MEMORY_BUFFERS,
- MEMORY_CACHE
+ MEMORY_CACHE,
+ MEMORY_SHARED
};
static void MemoryMeter_updateValues(Meter* this) {
@@ -26,14 +27,15 @@ static void MemoryMeter_updateValues(Meter* this) {
size_t size = sizeof(this->txtBuffer);
int written;
- /* available memory is not supported on all platforms */
+ /* shared and available memory are not supported on all platforms */
this->values[3] = NAN;
+ this->values[4] = NAN;
Platform_setMemoryValues(this);
/* Do not print available memory in bar mode */
- this->curItems = 3;
+ this->curItems = 4;
- written = Meter_humanUnit(buffer, isnan(this->values[3]) ? this->values[0] : this->total - this->values[3], size);
+ written = Meter_humanUnit(buffer, isnan(this->values[4]) ? this->values[0] : this->total - this->values[4], size);
METER_BUFFER_CHECK(buffer, size, written);
METER_BUFFER_APPEND_CHR(buffer, size, '/');
@@ -61,9 +63,16 @@ static void MemoryMeter_display(const Object* cast, RichString* out) {
RichString_appendAscii(out, CRT_colors[METER_TEXT], " cache:");
RichString_appendAscii(out, CRT_colors[MEMORY_CACHE], buffer);
- /* available memory is not supported on all platforms */
+ /* shared memory is not supported on all platforms */
if (!isnan(this->values[3])) {
Meter_humanUnit(buffer, this->values[3], sizeof(buffer));
+ RichString_appendAscii(out, CRT_colors[METER_TEXT], " shared:");
+ RichString_appendAscii(out, CRT_colors[MEMORY_SHARED], buffer);
+ }
+
+ /* available memory is not supported on all platforms */
+ if (!isnan(this->values[4])) {
+ Meter_humanUnit(buffer, this->values[4], sizeof(buffer));
RichString_appendAscii(out, CRT_colors[METER_TEXT], " available:");
RichString_appendAscii(out, CRT_colors[METER_VALUE], buffer);
}
@@ -77,7 +86,7 @@ const MeterClass MemoryMeter_class = {
},
.updateValues = MemoryMeter_updateValues,
.defaultMode = BAR_METERMODE,
- .maxItems = 4,
+ .maxItems = 5,
.total = 100.0,
.attributes = MemoryMeter_attributes,
.name = "Memory",

© 2014-2024 Faster IT GmbH | imprint | privacy policy