10#ifndef INFUSE_SDK_INCLUDE_INFUSE_ALGORITHM_RUNNER_LLEXT_IMPLEMENTATION_H_
11#define INFUSE_SDK_INCLUDE_INFUSE_ALGORITHM_RUNNER_LLEXT_IMPLEMENTATION_H_
13#include <zephyr/llext/symbol.h>
73#define ALGORITHM_EXPORT(symbol) EXPORT_GROUP_SYMBOL_NAMED(INFUSE_ALG, symbol, algorithm_config);
Application symbols that algorithms can use.
void(* algorithm_run_fn)(const struct zbus_channel *chan, const struct infuse_algorithm *algorithm, const void *args)
Algorithm implementation.
Definition implementation.h:43
Algorithm definition.
Definition implementation.h:47
uint8_t reserved
Currently unused struct padding.
Definition implementation.h:51
uint32_t algorithm_id
Unique algorithm identifier.
Definition implementation.h:55
uint32_t zbus_channel
Primary channel that triggers algorithm run.
Definition implementation.h:57
uint16_t arguments_size
Size of the arguments structure.
Definition implementation.h:61
uint16_t arguments_kv_key
KV Store key holding infuse_algorithm::arguments (If > 0)
Definition implementation.h:63
uint16_t algorithm_version
Algorithm implementation version.
Definition implementation.h:53
uint8_t struct_version
Version of the infuse_algorithm struct.
Definition implementation.h:49
algorithm_run_fn fn
Function that implements the algorithm.
Definition implementation.h:65
void * arguments
Algorithm arguments.
Definition implementation.h:59