#include "common/macros.h"
#include "compat/compiler.h"
#include "common/common.h"
-#include <babeltrace2/plugin/plugin-const.h>
-#include <babeltrace2/graph/component-class-const.h>
-#include <babeltrace2/current-thread.h>
+#include <babeltrace2/plugin/plugin-loading.h>
+#include <babeltrace2/graph/component-class.h>
+#include <babeltrace2/error-reporting.h>
#include "lib/graph/component-class.h"
#include <babeltrace2/types.h>
#include <glib.h>
#include <unistd.h>
+#include <stdbool.h>
#include <stdlib.h>
#include <stdint.h>
#include <inttypes.h>
#define APPEND_ALL_FROM_DIR_NFDOPEN_MAX 8
+/* Declare here to make sure definition in both ifdef branches are in sync. */
+static
+int init_python_plugin_provider(void);
+typedef int (*create_all_from_file_sym_type)(
+ const char *path,
+ bool fail_on_load_error,
+ struct bt_plugin_set **plugin_set_out);
+
#ifdef BT_BUILT_IN_PYTHON_PLUGIN_SUPPORT
#include <plugin/python-plugin-provider.h>
static
-int (*bt_plugin_python_create_all_from_file_sym)(
- const char *path, bool fail_on_load_error,
- struct bt_plugin_set **plugin_set_out) =
- bt_plugin_python_create_all_from_file;
+create_all_from_file_sym_type
+ bt_plugin_python_create_all_from_file_sym =
+ bt_plugin_python_create_all_from_file;
static
-enum bt_plugin_status init_python_plugin_provider(void)
+int init_python_plugin_provider(void)
{
}
#else /* BT_BUILT_IN_PYTHON_PLUGIN_SUPPORT */
static GModule *python_plugin_provider_module;
static
-int (*bt_plugin_python_create_all_from_file_sym)(
- const char *path, bool fail_on_load_error,
- struct bt_plugin_set **plugin_set_out);
+create_all_from_file_sym_type bt_plugin_python_create_all_from_file_sym;
static
int init_python_plugin_provider(void) {
bt_bool fail_on_load_error,
const struct bt_plugin_set **plugin_set_out)
{
+ BT_ASSERT_PRE_NO_ERROR();
+
/* bt_plugin_so_create_all_from_static() logs errors */
return bt_plugin_so_create_all_from_static(fail_on_load_error,
(void *) plugin_set_out);
{
enum bt_plugin_find_all_from_file_status status;
+ BT_ASSERT_PRE_NO_ERROR();
BT_ASSERT_PRE_NON_NULL(path, "Path");
BT_ASSERT_PRE_NON_NULL(path, "Plugin set (output)");
BT_LOGI("Creating plugins from file: path=\"%s\"", path);
int status = BT_FUNC_STATUS_OK;
uint64_t dir_i, plugin_i;
+ BT_ASSERT_PRE_NO_ERROR();
BT_ASSERT_PRE_NON_NULL(plugin_set_out, "Plugin set (output)");
BT_LOGI("Finding all plugins in standard directories and built-in plugins: "
"find-in-std-env-var=%d, find-in-user-dir=%d, "
const struct bt_plugin_set *plugin_set = NULL;
uint64_t i;
+ BT_ASSERT_PRE_NO_ERROR();
BT_ASSERT_PRE_NON_NULL(plugin_name, "Name");
BT_ASSERT_PRE_NON_NULL(plugin_out, "Plugin (output)");
BT_LOGI("Finding named plugin in standard directories and built-in plugins: "
": path=\"%s\", recurse=%d",
path, recurse);
(void) BT_CURRENT_THREAD_ERROR_APPEND_CAUSE_FROM_UNKNOWN(
- "Babeltrace library",
+ BT_LIB_LOG_LIBBABELTRACE2_NAME,
"Cannot open directory: path=\"%s\", recurse=%d",
path, recurse);
status = BT_FUNC_STATUS_ERROR;
enum bt_plugin_find_all_from_dir_status status =
BT_FUNC_STATUS_OK;
+ BT_ASSERT_PRE_NO_ERROR();
BT_ASSERT_PRE_NON_NULL(plugin_set_out, "Plugin set (output)");
BT_LOGI("Creating all plugins in directory: path=\"%s\", recurse=%d",
path, recurse);