From ea0b4b9e9695ab6df854b38d23773ab822a402d6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Sat, 27 Aug 2016 16:15:28 -0400 Subject: [PATCH] Add ctf fs component skeleton MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérémie Galarneau --- plugins/ctf/fs/fs-internal.h | 14 ++++++-- plugins/ctf/fs/fs.c | 67 ++++++++++++++++++++++++++++++++---- plugins/ctf/plugin.c | 4 +-- 3 files changed, 74 insertions(+), 11 deletions(-) diff --git a/plugins/ctf/fs/fs-internal.h b/plugins/ctf/fs/fs-internal.h index 3f87bd0e..448fff2a 100644 --- a/plugins/ctf/fs/fs-internal.h +++ b/plugins/ctf/fs/fs-internal.h @@ -30,12 +30,20 @@ #include #include -#define FS_COMPONENT_NAME "ctf" -#define FS_COMPONENT_DESCRIPTION \ +#define CTF_FS_COMPONENT_NAME "ctf" +#define CTF_FS_COMPONENT_DESCRIPTION \ "Component used to read a CTF trace located on a file system." +struct ctf_fs_component_options { + bool opt_dummy : 1; +}; + +struct ctf_fs_component { + struct ctf_fs_component_options options; +}; + BT_HIDDEN -enum bt_component_status fs_init(struct bt_component *source, +enum bt_component_status ctf_fs_init(struct bt_component *source, struct bt_value *params); #endif /* BABELTRACE_PLUGIN_CTF_FS_INTERNAL_H */ diff --git a/plugins/ctf/fs/fs.c b/plugins/ctf/fs/fs.c index 1142691e..3178c5c9 100644 --- a/plugins/ctf/fs/fs.c +++ b/plugins/ctf/fs/fs.c @@ -1,7 +1,7 @@ /* - * reader.c + * fs.c * - * Babeltrace CTF Reader Component + * Babeltrace CTF file system Reader Component * * Copyright 2016 Jérémie Galarneau * @@ -26,14 +26,69 @@ * SOFTWARE. */ +#include +#include +#include #include "fs-internal.h" -#include + +static bool ctf_fs_debug; + +static +struct ctf_fs_component *ctf_fs_create(struct bt_value *params) +{ + return g_new0(struct ctf_fs_component, 1); +} + +static +void ctf_fs_destroy(void *data) +{ + g_free(data); +} BT_HIDDEN -enum bt_component_status fs_init(struct bt_component *component, - struct bt_value *params) +enum bt_component_status ctf_fs_iterator_init(struct bt_component *source, + struct bt_notification_iterator *it) { - return BT_COMPONENT_STATUS_OK; + enum bt_component_status ret = BT_COMPONENT_STATUS_OK; + + assert(source && it); + return ret; } +BT_HIDDEN +enum bt_component_status ctf_fs_init(struct bt_component *source, + struct bt_value *params) +{ + struct ctf_fs_component *ctf_fs; + enum bt_component_status ret = BT_COMPONENT_STATUS_OK; + + assert(source); + ctf_fs_debug = g_strcmp0(getenv("CTF_FS_DEBUG"), "1") == 0; + ctf_fs = ctf_fs_create(params); + if (!ctf_fs) { + ret = BT_COMPONENT_STATUS_NOMEM; + goto end; + } + ret = bt_component_set_destroy_cb(source, ctf_fs_destroy); + if (ret != BT_COMPONENT_STATUS_OK) { + goto error; + } + + ret = bt_component_set_private_data(source, ctf_fs); + if (ret != BT_COMPONENT_STATUS_OK) { + goto error; + } + + ret = bt_component_source_set_iterator_init_cb(source, + ctf_fs_iterator_init); + if (ret != BT_COMPONENT_STATUS_OK) { + goto error; + } +end: + return ret; +error: + (void) bt_component_set_private_data(source, NULL); + ctf_fs_destroy(ctf_fs); + return ret; +} diff --git a/plugins/ctf/plugin.c b/plugins/ctf/plugin.c index 16c2c5b6..ef6ed2fd 100644 --- a/plugins/ctf/plugin.c +++ b/plugins/ctf/plugin.c @@ -37,8 +37,8 @@ BT_PLUGIN_AUTHOR("Jérémie Galarneau"); BT_PLUGIN_LICENSE("MIT"); BT_PLUGIN_COMPONENT_CLASSES_BEGIN -BT_PLUGIN_SOURCE_COMPONENT_CLASS_ENTRY(FS_COMPONENT_NAME, - FS_COMPONENT_DESCRIPTION, fs_init); +BT_PLUGIN_SOURCE_COMPONENT_CLASS_ENTRY(CTF_FS_COMPONENT_NAME, + CTF_FS_COMPONENT_DESCRIPTION, ctf_fs_init); BT_PLUGIN_SOURCE_COMPONENT_CLASS_ENTRY(LTTNG_LIVE_COMPONENT_NAME, LTTNG_LIVE_COMPONENT_DESCRIPTION, lttng_live_init); BT_PLUGIN_COMPONENT_CLASSES_END -- 2.34.1