diff options
| author | Bernard Xiong <[email protected]> | 2018-04-25 23:26:20 +0800 |
|---|---|---|
| committer | Bernard Xiong <[email protected]> | 2018-04-25 23:26:20 +0800 |
| commit | cdd12b7930edd446dc79fef66dd50271f9bd55e1 (patch) | |
| tree | 39fc5eb286ddfc742f3a5e82bfbded03bcf8c592 /components/libc/libdl/dlopen.c | |
| parent | 3c31567f1492cbb03f08a8cd0de239fb5ff6f451 (diff) | |
[libc] Add dl features in KConfig.
Diffstat (limited to 'components/libc/libdl/dlopen.c')
| -rw-r--r-- | components/libc/libdl/dlopen.c | 63 |
1 files changed, 31 insertions, 32 deletions
diff --git a/components/libc/libdl/dlopen.c b/components/libc/libdl/dlopen.c index 2c091079b2..6c89cb03c0 100644 --- a/components/libc/libdl/dlopen.c +++ b/components/libc/libdl/dlopen.c @@ -8,51 +8,50 @@ * http://www.rt-thread.org/license/LICENSE * * Change Logs: - * Date Author Notes - * 2010-11-17 yi.qiu first version + * Date Author Notes + * 2010-11-17 yi.qiu first version */ - + #include <rtthread.h> #include <rtm.h> #include <string.h> -#define MODULE_ROOT_DIR "/module/lib" +#define MODULE_ROOT_DIR "/modules" void* dlopen(const char *filename, int flags) { - rt_module_t module; - char *fullpath; - const char*def_path = MODULE_ROOT_DIR; + rt_module_t module; + char *fullpath; + const char*def_path = MODULE_ROOT_DIR; - /* check parameters */ - RT_ASSERT(filename != RT_NULL); + /* check parameters */ + RT_ASSERT(filename != RT_NULL); - if (filename[0] != '/') /* it's a relative path, prefix with MODULE_ROOT_DIR */ - { - fullpath = rt_malloc(strlen(def_path) + strlen(filename) + 2); + if (filename[0] != '/') /* it's a relative path, prefix with MODULE_ROOT_DIR */ + { + fullpath = rt_malloc(strlen(def_path) + strlen(filename) + 2); - /* join path and file name */ - rt_snprintf(fullpath, strlen(def_path) + strlen(filename) + 2, - "%s/%s", def_path, filename); - } - else - { - fullpath = (char*)filename; /* absolute path, use it directly */ - } + /* join path and file name */ + rt_snprintf(fullpath, strlen(def_path) + strlen(filename) + 2, + "%s/%s", def_path, filename); + } + else + { + fullpath = (char*)filename; /* absolute path, use it directly */ + } - /* find in module list */ - module = rt_module_find(fullpath); - - if(module != RT_NULL) module->nref++; - else module = rt_module_open(fullpath); + /* find in module list */ + module = rt_module_find(fullpath); - if(fullpath != filename) - { - rt_free(fullpath); - } + if(module != RT_NULL) module->nref++; + else module = rt_module_open(fullpath); - return (void*)module; -} + if(fullpath != filename) + { + rt_free(fullpath); + } -RTM_EXPORT(dlopen) + return (void*)module; +} +RTM_EXPORT(dlopen); |
