aboutsummaryrefslogtreecommitdiff
path: root/src/blocks/ram.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/blocks/ram.c')
-rw-r--r--src/blocks/ram.c36
1 files changed, 23 insertions, 13 deletions
diff --git a/src/blocks/ram.c b/src/blocks/ram.c
index 5a95013..8c21b21 100644
--- a/src/blocks/ram.c
+++ b/src/blocks/ram.c
@@ -7,6 +7,11 @@
#include "../any_log.h"
+typedef struct {
+ block_text_t block;
+ char *format;
+} block_ram_t;
+
static void block_ram_update(block_t *block)
{
FILE *meminfo = fopen("/proc/meminfo", "rb");
@@ -47,33 +52,38 @@ static void block_ram_update(block_t *block)
NULL,
};
- free(block->text.text);
- block->text.text = strformat(block->state, '%', ram_formats, ram_values);
- assert(block->text.text != NULL);
+ block_ram_t *ram = (block_ram_t *)block;
+ free(ram->block.text);
+
+ ram->block.text = strformat(ram->format, '%', ram_formats, ram_values);
+ assert(ram->block.text != NULL);
}
-static void block_ram_finalize(block_t *block)
+static void block_ram_clean(block_t *block)
{
- free(block->state);
+ block_ram_t *ram = (block_ram_t *)block;
+ free(ram->format);
}
static bool block_ram_validate(block_t *block, const block_scheme_t *scheme)
{
- if (block->text.text == NULL) {
+ block_ram_t *ram = (block_ram_t *)block;
+
+ if (ram->block.text == NULL) {
log_error("Block '%s' requires key '%s'", block->label, "text");
return false;
}
- if (strstr(block->text.text, "%{") == NULL) {
+ if (strstr(ram->block.text, "%{") == NULL) {
log_warn("Block '%s' does not use any ram variable", block->label);
- block->update_cb = NULL;
+ block->update_fn = NULL;
log_debug("Disabled updates for block '%s'", block->label);
return true;
}
- block->state = block->text.text;
- block->text.text = NULL;
+ ram->format = ram->block.text;
+ ram->block.text = NULL;
return true;
}
@@ -85,10 +95,10 @@ const block_scheme_t block_ram_scheme = {
.tv_sec = 1,
.tv_nsec = 0,
},
- .update_cb = block_ram_update,
- .finalize_cb = block_ram_finalize,
+ .update_fn = block_ram_update,
+ .clean_fn = block_ram_clean,
},
- .size = sizeof(char *),
+ .size = sizeof(block_ram_t),
.entries = NULL,
.validate = block_ram_validate,
};