diff options
Diffstat (limited to 'src/blocks/ram.c')
| -rw-r--r-- | src/blocks/ram.c | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/src/blocks/ram.c b/src/blocks/ram.c index 8c21b21..158583c 100644 --- a/src/blocks/ram.c +++ b/src/blocks/ram.c @@ -3,7 +3,7 @@ #include <assert.h> #include <stdlib.h> -#include "scheme.h" +#include "../block.h" #include "../any_log.h" @@ -12,6 +12,11 @@ typedef struct { char *format; } block_ram_t; +static const struct timespec block_ram_interval = { + .tv_sec = 1, + .tv_nsec = 0, +}; + static void block_ram_update(block_t *block) { FILE *meminfo = fopen("/proc/meminfo", "rb"); @@ -59,6 +64,15 @@ static void block_ram_update(block_t *block) assert(ram->block.text != NULL); } +static block_t *block_ram_alloc(const block_scheme_t *scheme) +{ + block_t *block = calloc(1, sizeof(block_ram_t)); + block->type = BLOCK_TEXT; + block->update_interval = block_ram_interval; + block->update_fn = block_ram_update; + return block; +} + static void block_ram_clean(block_t *block) { block_ram_t *ram = (block_ram_t *)block; @@ -89,16 +103,9 @@ static bool block_ram_validate(block_t *block, const block_scheme_t *scheme) const block_scheme_t block_ram_scheme = { .name = "ram", - .block = { - .type = BLOCK_TEXT, - .update_interval = { - .tv_sec = 1, - .tv_nsec = 0, - }, - .update_fn = block_ram_update, - .clean_fn = block_ram_clean, - }, - .size = sizeof(block_ram_t), .entries = NULL, - .validate = block_ram_validate, + .alloc_fn = block_ram_alloc, + .clean_fn = block_ram_clean, + .validate_fn = block_ram_validate, + .resolve_fn = NULL, }; |
