/* * File : rtm.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-04-12 yi.qiu first version */ #include #include #include #include #include /* some buildin kernel symbol */ #ifdef RT_USING_MODULE #include /* * thread interface symbol */ RTM_EXPORT(rt_thread_init); RTM_EXPORT(rt_thread_detach); RTM_EXPORT(rt_thread_create); RTM_EXPORT(rt_thread_self); RTM_EXPORT(rt_thread_find); RTM_EXPORT(rt_thread_startup); RTM_EXPORT(rt_thread_delete); RTM_EXPORT(rt_thread_yield); RTM_EXPORT(rt_thread_delay); RTM_EXPORT(rt_thread_control); RTM_EXPORT(rt_thread_suspend); RTM_EXPORT(rt_thread_resume); RTM_EXPORT(rt_thread_timeout); #ifdef RT_USING_SEMAPHORE /* * semaphore interface symbol */ RTM_EXPORT(rt_sem_init); RTM_EXPORT(rt_sem_detach); RTM_EXPORT(rt_sem_create); RTM_EXPORT(rt_sem_delete); RTM_EXPORT(rt_sem_take); RTM_EXPORT(rt_sem_trytake); RTM_EXPORT(rt_sem_release); RTM_EXPORT(rt_sem_control); #endif #ifdef RT_USING_MUTEX /* * mutex interface symbol */ RTM_EXPORT(rt_mutex_init); RTM_EXPORT(rt_mutex_detach); RTM_EXPORT(rt_mutex_create); RTM_EXPORT(rt_mutex_delete); RTM_EXPORT(rt_mutex_take); RTM_EXPORT(rt_mutex_release); RTM_EXPORT(rt_mutex_control); #endif #ifdef RT_USING_EVENT /* * event interface symbol */ RTM_EXPORT(rt_event_init); RTM_EXPORT(rt_event_detach); RTM_EXPORT(rt_event_create); RTM_EXPORT(rt_event_delete); RTM_EXPORT(rt_event_send); RTM_EXPORT(rt_event_recv); RTM_EXPORT(rt_event_control); #endif #ifdef RT_USING_MAILBOX /* * mailbox interface symbol */ RTM_EXPORT(rt_mb_init); RTM_EXPORT(rt_mb_detach); RTM_EXPORT(rt_mb_create); RTM_EXPORT(rt_mb_delete); RTM_EXPORT(rt_mb_send); RTM_EXPORT(rt_mb_recv); RTM_EXPORT(rt_mb_control); #endif #ifdef RT_USING_MESSAGEQUEUE /* * message queue interface symbol */ RTM_EXPORT(rt_mq_init); RTM_EXPORT(rt_mq_detach); RTM_EXPORT(rt_mq_create); RTM_EXPORT(rt_mq_delete); RTM_EXPORT(rt_mq_send); RTM_EXPORT(rt_mq_urgent); RTM_EXPORT(rt_mq_recv); RTM_EXPORT(rt_mq_control); #endif #ifdef RT_USING_MEMPOOL /* * memory pool interface symbol */ RTM_EXPORT(rt_mp_init); RTM_EXPORT(rt_mp_detach); RTM_EXPORT(rt_mp_create); RTM_EXPORT(rt_mp_delete); RTM_EXPORT(rt_mp_alloc); RTM_EXPORT(rt_mp_free); #endif #ifdef RT_USING_HEAP /* * heap memory interface symbol */ RTM_EXPORT(rt_malloc); RTM_EXPORT(rt_free); RTM_EXPORT(rt_realloc); RTM_EXPORT(rt_calloc); #endif /* * clock & timer interface symbol */ RTM_EXPORT(rt_tick_get); RTM_EXPORT(rt_tick_from_millisecond); RTM_EXPORT(rt_system_timer_init); RTM_EXPORT(rt_system_timer_thread_init); RTM_EXPORT(rt_timer_init); RTM_EXPORT(rt_timer_detach); RTM_EXPORT(rt_timer_create); RTM_EXPORT(rt_timer_delete); RTM_EXPORT(rt_timer_start); RTM_EXPORT(rt_timer_stop); RTM_EXPORT(rt_timer_control); /* * kservice interface symbol */ RTM_EXPORT(rt_memcpy) RTM_EXPORT(rt_memcmp) RTM_EXPORT(rt_memset) RTM_EXPORT(rt_kprintf) RTM_EXPORT(rt_sprintf) RTM_EXPORT(rt_strstr) RTM_EXPORT(rt_snprintf) /* * misc interface symbol */ extern int __aeabi_idiv; extern int __aeabi_ddiv; extern int __aeabi_dmul; extern int __aeabi_i2d; extern int __aeabi_uidiv; extern int __aeabi_uidivmod; extern int __aeabi_idivmod; extern int __aeabi_d2iz; RTM_EXPORT(__aeabi_ddiv) RTM_EXPORT(__aeabi_dmul) RTM_EXPORT(__aeabi_i2d) RTM_EXPORT(__aeabi_uidiv) RTM_EXPORT(__aeabi_idiv) RTM_EXPORT(__aeabi_idivmod) RTM_EXPORT(__aeabi_uidivmod) RTM_EXPORT(__aeabi_d2iz) RTM_EXPORT(strcmp) RTM_EXPORT(strcpy) RTM_EXPORT(strlen) RTM_EXPORT(rand) RTM_EXPORT(memset) RTM_EXPORT(memcpy) #ifdef RT_USING_NEWLIB #include RTM_EXPORT(snprintf) RTM_EXPORT(access) RTM_EXPORT(__assert_func) #include RTM_EXPORT(localtime) RTM_EXPORT(time) #endif #ifdef RT_USING_DFS #include RTM_EXPORT(open) RTM_EXPORT(close) RTM_EXPORT(read) RTM_EXPORT(write) RTM_EXPORT(stat) #endif #ifdef RT_USING_RTGUI /* FIX ME , should be removed from here */ #include #include #include #include #include #include #include #include #include RTM_EXPORT(rtgui_view_show) RTM_EXPORT(rtgui_view_create) RTM_EXPORT(rtgui_view_destroy) RTM_EXPORT(rtgui_view_event_handler) RTM_EXPORT(rtgui_dc_draw_text) RTM_EXPORT(rtgui_dc_begin_drawing) RTM_EXPORT(rtgui_dc_end_drawing) RTM_EXPORT(rtgui_workbench_event_loop) RTM_EXPORT(rtgui_workbench_event_handler) RTM_EXPORT(rtgui_workbench_add_view) RTM_EXPORT(rtgui_workbench_create) RTM_EXPORT(rtgui_workbench_destroy) RTM_EXPORT(rtgui_workbench_close) RTM_EXPORT(rtgui_timer_start) RTM_EXPORT(rtgui_timer_create) RTM_EXPORT(rtgui_timer_destory) RTM_EXPORT(rtgui_timer_stop) RTM_EXPORT(rtgui_thread_register) RTM_EXPORT(rtgui_thread_deregister) RTM_EXPORT(rtgui_widget_focus) RTM_EXPORT(rtgui_widget_set_event_handler) RTM_EXPORT(rtgui_widget_rect_to_device) RTM_EXPORT(rtgui_widget_update) RTM_EXPORT(rtgui_widget_get_rect) RTM_EXPORT(rtgui_widget_set_rect) RTM_EXPORT(rtgui_widget_get_toplevel) RTM_EXPORT(rtgui_panel_register) RTM_EXPORT(rtgui_panel_set_default_focused) RTM_EXPORT(rtgui_button_create) RTM_EXPORT(rtgui_button_destroy) RTM_EXPORT(rtgui_button_set_onbutton) RTM_EXPORT(rtgui_container_add_child) RTM_EXPORT(rtgui_filelist_view_create) RTM_EXPORT(rtgui_filelist_view_get_fullpath) RTM_EXPORT(rtgui_list_view_create) RTM_EXPORT(rtgui_list_view_destroy) #endif #endif