diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2013-10-18 08:15:19 +0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2013-11-13 17:25:39 +0800 |
commit | 6f381c405612e0056f48d2871ff1be3faaca4776 (patch) | |
tree | 80b004df7df82789e7deb4654b73794e0dc1506d /lib/pb-config/storage-test.c | |
parent | 8e259f91a75cf9fd7f839cd95aa71c2fe07757f1 (diff) | |
download | talos-petitboot-6f381c405612e0056f48d2871ff1be3faaca4776.tar.gz talos-petitboot-6f381c405612e0056f48d2871ff1be3faaca4776.zip |
lib/pb-config: Implement save method for test storage
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'lib/pb-config/storage-test.c')
-rw-r--r-- | lib/pb-config/storage-test.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/lib/pb-config/storage-test.c b/lib/pb-config/storage-test.c index e4a0e5a..48cb238 100644 --- a/lib/pb-config/storage-test.c +++ b/lib/pb-config/storage-test.c @@ -40,22 +40,34 @@ struct test_storage { struct config_storage storage; struct param *params; int n_params; + struct config *config; }; -static int load(struct config_storage *st __attribute__((unused)), - struct config *config) +#define to_test_storage(st) container_of(st, struct test_storage, storage) + +static int load(struct config_storage *st, struct config *config) +{ + struct test_storage *ts = to_test_storage(st); + memcpy(config, ts->config, sizeof(test_config)); + return 0; +} + +static int save(struct config_storage *st, struct config *newconfig) { - memcpy(config, &test_config, sizeof(test_config)); + struct test_storage *ts = to_test_storage(st); + ts->config = newconfig; return 0; } static struct test_storage st = { .storage = { .load = load, + .save = save, }, }; struct config_storage *create_test_storage(void *ctx __attribute__((unused))) { + st.config = &test_config; return &st.storage; } |