X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fplugin%2Fplugin.h;h=ae6dae865a0591aa1ecf0153f71e22aecea44ad7;hb=633edee06e8dea4a4a2ba34a175d974f8b90726d;hp=60a1a21a7b48ade9fdb9aedcf1fe1db36a8a36e5;hpb=62ed7c304672e2b6fd88b6d59fa3c9a7ad993a2d;p=babeltrace.git diff --git a/include/babeltrace/plugin/plugin.h b/include/babeltrace/plugin/plugin.h index 60a1a21a..ae6dae86 100644 --- a/include/babeltrace/plugin/plugin.h +++ b/include/babeltrace/plugin/plugin.h @@ -5,6 +5,7 @@ * BabelTrace - Babeltrace Plug-in Interface * * Copyright 2015 Jérémie Galarneau + * Copyright 2015 Philippe Proulx * * Author: Jérémie Galarneau * @@ -27,10 +28,33 @@ * SOFTWARE. */ -#include -#include -#include -#include -#include +#include + +#define BT_PLUGIN_NAME(_x) const char *__bt_plugin_name = (_x) +#define BT_PLUGIN_AUTHOR(_x) const char *__bt_plugin_author = (_x) +#define BT_PLUGIN_LICENSE(_x) const char *__bt_plugin_license = (_x) +#define BT_PLUGIN_INIT(_x) void *__bt_plugin_init = (_x) +#define BT_PLUGIN_EXIT(_x) void *__bt_plugin_exit = (_x) + +#define BT_PLUGIN_COMPONENT_CLASSES_BEGIN \ + enum bt_status __bt_plugin_register_component_classes(\ + struct bt_component_factory *factory)\ + { + +#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_ENTRY(_name, _init, _fini, _it_cr) \ + bt_component_factory_register_source_component_class(factory, \ + _name, _init, _fini, _it_cr); + +#define BT_PLUGIN_SINK_COMPONENT_CLASS_ENTRY(_name, _init, _fini, _hd_notif) \ + bt_component_factory_register_sink_component_class(factory, \ + _name, _init, _fini, _hd_notif); + +#define BT_PLUGIN_COMPONENT_CLASSES_END\ + \ + return BT_STATUS_OK;\ +}\ + \ + BT_PLUGIN_INIT(__bt_plugin_register_component_classes);\ + BT_PLUGIN_EXIT(NULL); #endif /* BABELTRACE_PLUGIN_H */