From 2b44f885e97b0d8902014a5a61f6687fa2931dec Mon Sep 17 00:00:00 2001 From: bigfoot547 Date: Mon, 17 Nov 2025 20:57:42 -0600 Subject: ignore this commit --- src/main.c | 2 -- src/meson.build | 3 ++- src/plugins.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 src/plugins.c (limited to 'src') diff --git a/src/main.c b/src/main.c index 83ed688..50baf66 100644 --- a/src/main.c +++ b/src/main.c @@ -5,8 +5,6 @@ #include "pipeline.h" -#define UNUSED(_v) ((void)(_v)) - PIPELINE_STAGE static int identity_stage_handle(const ptx_pipeline_ctx_t *ctx, const void *data, size_t sz) { return ptx_pipeline_ctx_next(ctx, data, sz); diff --git a/src/meson.build b/src/meson.build index d1a3033..ba3d51b 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,5 +1,6 @@ prog_sources = files( 'pipeline.c', 'connection.c', - 'main.c' + 'main.c', + 'plugins.c' ) diff --git a/src/plugins.c b/src/plugins.c new file mode 100644 index 0000000..f2f8d14 --- /dev/null +++ b/src/plugins.c @@ -0,0 +1,63 @@ +#include "plugins.h" +#include +#include +#include +#include + +#include +#include + +struct ptx__plugin_manager_tag +{ + size_t sz_plugins; + ptx_plugin_t *plugins; +}; + +struct ptx__plugin_handle_tag +{ + char *path; +}; + +ptx_plugin_manager_t *ptx_plugin_manager_new(void) +{ + ptx_plugin_manager_t *mgr = malloc(sizeof(ptx_plugin_manager_t)); + if (!mgr) return NULL; + + /* do init */ + mgr->sz_plugins = 0; + mgr->plugins = NULL; + + return mgr; +} + +void ptx_plugin_manager_free(ptx_plugin_manager_t *mgr) +{ + if (!mgr) return; + + /* do cleanup */ + + free(mgr); + return; +} + +int ptx_plugin_manager_load_dir(ptx_plugin_manager_t *mgr, const char *dirnam) +{ + struct dirent *ent; + DIR *dir = opendir(dirnam); + + if (!dir) { + fprintf(stderr, "Failed to load plugins from %s (opendir): %s\n", dirnam, strerror(errno)); + return -1; + } + + while ((errno = 0, ent = readdir(dir))) { + + } + + if (errno != 0) { + fprintf(stderr, "Error reading entries from %s (readdir): %s\n", dirnam, strerror(errno)); + return -1; + } + + return 0; +} -- cgit v1.2.3-70-g09d2