summaryrefslogtreecommitdiff
path: root/components/libc/libdl/dlsym.c
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2016-05-10 09:22:01 +0800
committerBernard Xiong <[email protected]>2016-05-10 09:22:01 +0800
commit64feef0dde9d8353ffe4a3f257ab17848ccf6f53 (patch)
treedd3f096b8a3c249e5327cc34a0c105c5125099e1 /components/libc/libdl/dlsym.c
parenteb320a0104bbaa6c1235fe899b6d099fdabe8c25 (diff)
[LIBC] mv pthreads/libdl to libc and rename dfs_lwip to dfs_net
Diffstat (limited to 'components/libc/libdl/dlsym.c')
-rw-r--r--components/libc/libdl/dlsym.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/components/libc/libdl/dlsym.c b/components/libc/libdl/dlsym.c
new file mode 100644
index 0000000000..36c7b01fce
--- /dev/null
+++ b/components/libc/libdl/dlsym.c
@@ -0,0 +1,37 @@
+/*
+ * File : dlsym.c
+ * This file is part of RT-Thread RTOS
+ * COPYRIGHT (C) 2006 - 2010, RT-Thread Development Team
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rt-thread.org/license/LICENSE
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2010-11-17 yi.qiu first version
+ */
+
+#include <rtthread.h>
+#include <rtm.h>
+
+void* dlsym(void *handle, const char* symbol)
+{
+ int i;
+ rt_module_t module;
+
+ RT_ASSERT(handle != RT_NULL);
+
+ module = (rt_module_t)handle;
+
+ for(i=0; i<module->nsym; i++)
+ {
+ if (rt_strcmp(module->symtab[i].name, symbol) == 0)
+ return (void*)module->symtab[i].addr;
+ }
+
+ return RT_NULL;
+}
+
+RTM_EXPORT(dlsym)
+