diff options
| author | qiuyiuestc <[email protected]> | 2010-04-11 16:44:54 +0000 |
|---|---|---|
| committer | qiuyiuestc <[email protected]> | 2010-04-11 16:44:54 +0000 |
| commit | 5211e7ff8fbd9dd7737fa5c0d83b505bbba0c893 (patch) | |
| tree | f552be8b7119d85590dc55987fd01c7ebc97d944 /include | |
| parent | ca6a1a7ecbd47f45b00aac9766b8dfb572c6eade (diff) | |
add module feature
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@604 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'include')
| -rw-r--r-- | include/rtm.h | 24 | ||||
| -rw-r--r-- | include/rtthread.h | 42 |
2 files changed, 51 insertions, 15 deletions
diff --git a/include/rtm.h b/include/rtm.h new file mode 100644 index 0000000000..596d5f7f07 --- /dev/null +++ b/include/rtm.h @@ -0,0 +1,24 @@ +#ifndef __RTM_H__
+#define __RTM_H__
+
+#include <rtdef.h>
+
+#ifdef RT_USING_MODULE
+#define RTM_EXPORT(symbol) \
+const char __rtmsym_##symbol##_name[] = #symbol; \
+const struct rt_module_symtab __rtmsym_##symbol SECTION("RTMSymTab")= \
+{ \
+ (rt_uint32_t)&symbol, \
+ __rtmsym_##symbol##_name, \
+};
+#else
+#define RTM_EXPORT(symbol)
+#endif
+
+struct rt_module_symtab
+{
+ rt_uint32_t addr;
+ const char* name;
+};
+
+#endif
diff --git a/include/rtthread.h b/include/rtthread.h index 9cf3e49978..b3d6621e22 100644 --- a/include/rtthread.h +++ b/include/rtthread.h @@ -14,6 +14,8 @@ * 2006-08-10 Bernard add version information * 2007-01-28 Bernard rename RT_OBJECT_Class_Static to RT_Object_Class_Static * 2007-03-03 Bernard clean up the definitions to rtdef.h + * 2010-04-11 yi.qiu add module feature + */ #ifndef __RT_THREAD_H__ @@ -25,6 +27,16 @@ extern "C" { #endif +#if defined(__CC_ARM) +#ifdef RT_USING_MODULE +#define RTT_API __declspec(dllimport) +#else +#define RTT_API __declspec(dllexport) +#endif +#elif defined(__GNUC__) +#define RTT_API +#endif + /** * @addtogroup KernelObject */ @@ -91,27 +103,27 @@ void rt_timer_timeout_sethook(void (*hook)(struct rt_timer* timer)); /* * thread interface */ -rt_err_t rt_thread_init(struct rt_thread* thread, +RTT_API rt_err_t rt_thread_init(struct rt_thread* thread, const char* name, void (*entry)(void* parameter), void* parameter, void* stack_start, rt_uint32_t stack_size, rt_uint8_t priority, rt_uint32_t tick); -rt_err_t rt_thread_detach(rt_thread_t thread); -rt_thread_t rt_thread_create (const char* name, +RTT_API rt_err_t rt_thread_detach(rt_thread_t thread); +RTT_API rt_thread_t rt_thread_create (const char* name, void (*entry)(void* parameter), void* parameter, rt_uint32_t stack_size, rt_uint8_t priority, rt_uint32_t tick); -rt_thread_t rt_thread_self(void); -rt_thread_t rt_thread_find(char* name); -rt_err_t rt_thread_startup(rt_thread_t thread); -rt_err_t rt_thread_delete(rt_thread_t thread); +RTT_API rt_thread_t rt_thread_self(void); +RTT_API rt_thread_t rt_thread_find(char* name); +RTT_API rt_err_t rt_thread_startup(rt_thread_t thread); +RTT_API rt_err_t rt_thread_delete(rt_thread_t thread); -rt_err_t rt_thread_yield(void); -rt_err_t rt_thread_delay(rt_tick_t tick); -rt_err_t rt_thread_control(rt_thread_t thread, rt_uint8_t cmd, void* arg); -rt_err_t rt_thread_suspend(rt_thread_t thread); -rt_err_t rt_thread_resume(rt_thread_t thread); -void rt_thread_timeout(void* parameter); +RTT_API rt_err_t rt_thread_yield(void); +RTT_API rt_err_t rt_thread_delay(rt_tick_t tick); +RTT_API rt_err_t rt_thread_control(rt_thread_t thread, rt_uint8_t cmd, void* arg); +RTT_API rt_err_t rt_thread_suspend(rt_thread_t thread); +RTT_API rt_err_t rt_thread_resume(rt_thread_t thread); +RTT_API void rt_thread_timeout(void* parameter); /* * idle thread interface @@ -312,8 +324,8 @@ void rt_interrupt_leave(void); rt_int32_t rt_sprintf(char *buf ,const char *format,...); rt_int32_t rt_vsprintf(char *dest, const char *format, va_list arg_ptr); rt_int32_t rt_sprintf(char *buf ,const char *format,...); -rt_int32_t rt_snprintf(char *buf, rt_size_t size, const char *format, ...);
-
+rt_int32_t rt_snprintf(char *buf, rt_size_t size, const char *format, ...); + rt_device_t rt_console_set_device(const char* name); void rt_kprintf(const char *fmt, ...); |
