summaryrefslogtreecommitdiffstats
path: root/src/plugin.c
diff options
context:
space:
mode:
authorSuren A. Chilingaryan <csa@dside.dyndns.org>2005-06-16 23:14:30 +0000
committerSuren A. Chilingaryan <csa@dside.dyndns.org>2005-06-16 23:14:30 +0000
commit3aa2acb1aa6931d9a5cab87fe9bef94086e25d16 (patch)
treec3b86c2f004e7a8498efbe41e72f42d81acde9ea /src/plugin.c
downloadlibrcc-3aa2acb1aa6931d9a5cab87fe9bef94086e25d16.tar.gz
librcc-3aa2acb1aa6931d9a5cab87fe9bef94086e25d16.tar.bz2
librcc-3aa2acb1aa6931d9a5cab87fe9bef94086e25d16.tar.xz
librcc-3aa2acb1aa6931d9a5cab87fe9bef94086e25d16.zip
Initial Import
Diffstat (limited to 'src/plugin.c')
-rw-r--r--src/plugin.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/plugin.c b/src/plugin.c
new file mode 100644
index 0000000..53ff00c
--- /dev/null
+++ b/src/plugin.c
@@ -0,0 +1,31 @@
+#ifdef RCC_PLUGINS
+# include <dlfcn.h>
+# ifndef RTLD_NOW
+# define RTLD_NOW 0
+# endif
+#endif /* RCC_PLUGINS */
+
+rcc_library_handle rccLibraryOpen(char *filename)
+{
+#ifdef RCC_PLUGINS
+ return (rcc_library_handle)dlopen(filename, RTLD_NOW);
+#else
+ return NULL;
+#endif /* RCC_PLUGINS */
+}
+
+void rccLibraryClose(rcc_library_handle handle)
+{
+#ifdef RCC_PLUGINS
+ dlclose(handle);
+#endif /* RCC_PLUGINS */
+}
+
+void* rccLibraryFind(rcc_library_handle handle, const char *symbol)
+{
+#ifdef RCC_PLUGINS
+ return dlsym(handle, symbol);
+#else
+ return NULL;
+#endif /* RCC_PLUGINS */
+}