diff options
| author | qiuyiuestc <[email protected]> | 2010-11-17 15:41:10 +0000 |
|---|---|---|
| committer | qiuyiuestc <[email protected]> | 2010-11-17 15:41:10 +0000 |
| commit | b2fb4be8111ae46ca64e4b135cfd47895900a0e1 (patch) | |
| tree | 7008d2fcdd53bc50dc0b391c9007f4afa1bbfe37 /components/libdl/dlsym.c | |
| parent | e83ffff6665605057e9aa6f5c8b98b83622121b4 (diff) | |
add initial libdl
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1052 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'components/libdl/dlsym.c')
| -rw-r--r-- | components/libdl/dlsym.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/components/libdl/dlsym.c b/components/libdl/dlsym.c new file mode 100644 index 0000000000..d1b5266ce1 --- /dev/null +++ b/components/libdl/dlsym.c @@ -0,0 +1,35 @@ +/*
+ * 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* rt_dlsym(void *handle, const char* symbol)
+{
+ int i;
+ rt_module_t module = (rt_module_t)handle;
+
+ RT_ASSERT(handle != RT_NULL);
+
+ 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(rt_dlsym)
+
|
