summaryrefslogtreecommitdiffhomepage
path: root/lib.c
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2022-03-22 13:38:46 +0100
committerJo-Philipp Wich <jo@mein.io>2022-03-22 13:38:46 +0100
commit8b5dc6079f1f9fcfb6535ba305c9352488bdd5ab (patch)
tree2fc39ec8cd67b8913a7bf1d565fad6f6ca5ad923 /lib.c
parent3eaca1db52be980f62aed281fedf319eff599fbd (diff)
lib: provide API function to obtain stdlib function implementations
Provide a new API function `uc_stdlib_function()` which allows to fetch the C implementation of the given named standard library function. This is useful for loadable modules or applications that embed ucode which want to reuse core functions such as `sprintf()`. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib.c b/lib.c
index 8fdf2ec..5f8a053 100644
--- a/lib.c
+++ b/lib.c
@@ -3194,3 +3194,15 @@ uc_stdlib_load(uc_value_t *scope)
{
uc_function_list_register(scope, uc_stdlib_functions);
}
+
+uc_cfn_ptr_t
+uc_stdlib_function(const char *name)
+{
+ size_t i;
+
+ for (i = 0; i < ARRAY_SIZE(uc_stdlib_functions); i++)
+ if (!strcmp(uc_stdlib_functions[i].name, name))
+ return uc_stdlib_functions[i].func;
+
+ return NULL;
+}