summaryrefslogtreecommitdiff
path: root/include/engine/dltools.h
diff options
context:
space:
mode:
author0scar <qgt268@alumni.ku.dk>2023-07-28 14:32:58 +0000
committer0scar <qgt268@alumni.ku.dk>2023-07-28 18:26:17 +0000
commit4cb29fbc2d20f20e9d605796b137b4b70363113a (patch)
tree9b5929ff4d16a7a2472bafac48196e5ddfabc7dd /include/engine/dltools.h
parent5ee7f4b4b033de403f1861eedc942c7a5a0f31b6 (diff)
Implement hotloading
* This commit implements dltools.{c,h}: _A simple wrapper around libdl / dlfcn.h_ * Reload states when done initializing engine, if hotloading is enabled. * Adds general function types for state functions.
Diffstat (limited to 'include/engine/dltools.h')
-rw-r--r--include/engine/dltools.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/engine/dltools.h b/include/engine/dltools.h
new file mode 100644
index 0000000..9306ae7
--- /dev/null
+++ b/include/engine/dltools.h
@@ -0,0 +1,14 @@
+#ifndef DLTOOLS_H
+#define DLTOOLS_H
+
+/* Utility functions for handling runtime linked shared libraries */
+bool dynamic_library_close(void* shared_library);
+void* dynamic_library_open(const char *library_path);
+void* dynamic_library_reload(void* shared_library, const char *library_path);
+
+/* Returns the address of symbol in the provided shared_library handle.
+ * NULL on error*/
+void* dynamic_library_get_symbol(void* shared_library, const char *symbol);
+char* dynamic_library_get_error(void);
+
+#endif