aboutsummaryrefslogtreecommitdiffstats
path: root/include/pipeline.h
diff options
context:
space:
mode:
authorLibravatar bigfoot547 <[email protected]>2025-11-16 20:52:57 -0600
committerLibravatar bigfoot547 <[email protected]>2025-11-16 20:52:57 -0600
commitd026e93405655129e46debfca2124ee132e9b134 (patch)
tree8adf037dd69c4226ef9a5d2a3dd8fa63eb783761 /include/pipeline.h
parent[wip] plugin stuff (diff)
build config + more plugin stuff
Diffstat (limited to 'include/pipeline.h')
-rw-r--r--include/pipeline.h29
1 files changed, 11 insertions, 18 deletions
diff --git a/include/pipeline.h b/include/pipeline.h
index d662b09..f8c51dc 100644
--- a/include/pipeline.h
+++ b/include/pipeline.h
@@ -5,7 +5,7 @@
#include <stddef.h>
#include <stdarg.h>
-#include "config.h"
+#include "macros.h"
#define PIPELINE_STAGE ATTR_WUR ATTR_ACCESS((read_only, 1))
#define PIPELINE_INIT ATTR_ACCESS((read_only, 1))
@@ -24,40 +24,33 @@ struct ptx_pipeline_stage_funcs {
ptx_pipeline_cleanup_proc_t *cleanup;
};
-#ifdef MODULE
-#define MODEXP extern
-#else
-#define MODEXP \
-__attribute__((visibility("protected")))
-#endif
-
/* allocates a new pipeline, with space for `initial_size' new stages. */
-MODEXP ptx_pipeline_t *ptx_pipeline_new(size_t initial_size) ATTR_WUR ATTR_MALLOC() ATTR_MALLOC((ptx_pipeline_free, 1));
+PTX_API ptx_pipeline_t *ptx_pipeline_new(size_t initial_size) ATTR_WUR ATTR_MALLOC() ATTR_MALLOC((ptx_pipeline_free, 1));
/* frees an existing pipeline stage. note that this will call the cleanup function in the stages as well. */
-void ptx_pipeline_free(ptx_pipeline_t *pl);
+PTX_API void ptx_pipeline_free(ptx_pipeline_t *pl);
/* adds `stage' with `name' to `pipeline' after `after'
* returns: number of stages added to pipeline (0 or 1), or -1 if there was an allocation or initialization error. */
-int ptx_pipeline_add_after(ptx_pipeline_t *pipeline, const struct ptx_pipeline_stage_funcs *stage, const char *name, const char *after, ...);
+PTX_API int ptx_pipeline_add_after(ptx_pipeline_t *pipeline, const struct ptx_pipeline_stage_funcs *stage, const char *name, const char *after, ...) ATTR_WUR;
/* adds `stage' with `name' to `pipeline' before `before'
* returns: number of stages added to pipeline (0 or 1), or -1 if there was an allocation or initialization error. */
-int ptx_pipeline_add_before(ptx_pipeline_t *pipeline, const struct ptx_pipeline_stage_funcs *stage, const char *name, const char *before, ...);
+PTX_API int ptx_pipeline_add_before(ptx_pipeline_t *pipeline, const struct ptx_pipeline_stage_funcs *stage, const char *name, const char *before, ...) ATTR_WUR;
/* TODO: could theoretically have versions of the above functions that don't defensively copy `name' */
/* returns: number of stages removed from pipeline */
-int ptx_pipeline_remove_stage(ptx_pipeline_t *pipeline, const char *name);
+PTX_API int ptx_pipeline_remove_stage(ptx_pipeline_t *pipeline, const char *name);
/* this pointer is guaranteed to be valid as long as the pipeline context is active (i.e., within this handler function)
* If you need to access user data of a stage from outside of a handler function, TODO */
-void **ptx_pipeline_ctx_get_user(const ptx_pipeline_ctx_t *ctx);
-const char *ptx_pipeline_ctx_get_name(const ptx_pipeline_ctx_t *ctx);
+PTX_API void **ptx_pipeline_ctx_get_user(const ptx_pipeline_ctx_t *ctx);
+PTX_API const char *ptx_pipeline_ctx_get_name(const ptx_pipeline_ctx_t *ctx);
-int ptx_pipeline_ctx_next(const ptx_pipeline_ctx_t *ctx, const void *nextdata, size_t nextsize);
+PTX_API int ptx_pipeline_ctx_next(const ptx_pipeline_ctx_t *ctx, const void *nextdata, size_t nextsize) ATTR_WUR;
-void ptx_pipeline_ctx_diag(const ptx_pipeline_ctx_t *ctx, int lvl, const char *fmt, ...) ATTR_FORMAT((printf, 3, 4)); /* TODO: pipeline stages should be able to send diagnostic messages */
+PTX_API void ptx_pipeline_ctx_diag(const ptx_pipeline_ctx_t *ctx, int lvl, const char *fmt, ...) ATTR_FORMAT((printf, 3, 4)); /* TODO: pipeline stages should be able to send diagnostic messages */
-int ptx_pipeline_handle(ptx_pipeline_t *pipeline, const void *data, size_t sz); /* TODO: diagnostic */
+PTX_API int ptx_pipeline_handle(ptx_pipeline_t *pipeline, const void *data, size_t sz); /* TODO: diagnostic */
#endif /* include guard */