diff --git a/src/kservice.h b/include/rtservice.h similarity index 90% rename from src/kservice.h rename to include/rtservice.h index 3fa9cd293..52f823ede 100644 --- a/src/kservice.h +++ b/include/rtservice.h @@ -1,108 +1,102 @@ -/* - * File : kservice.h - * This file is part of RT-Thread RTOS - * COPYRIGHT (C) 2006 - 2012, 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 - * 2006-03-16 Bernard the first version - * 2006-09-07 Bernard move the kservice APIs to rtthread.h - * 2007-06-27 Bernard fix the rt_list_remove bug - */ - -#ifndef __RT_SERVICE_H__ -#define __RT_SERVICE_H__ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @addtogroup KernelService - */ - -/*@{*/ - -/** - * @brief initialize a list - * - * @param l list to be initialized - */ -rt_inline void rt_list_init(rt_list_t *l) -{ - l->next = l->prev = l; -} - -/** - * @brief insert a node after a list - * - * @param l list to insert it - * @param n new node to be inserted - */ -rt_inline void rt_list_insert_after(rt_list_t *l, rt_list_t *n) -{ - l->next->prev = n; - n->next = l->next; - - l->next = n; - n->prev = l; -} - -/** - * @brief insert a node before a list - * - * @param n new node to be inserted - * @param l list to insert it - */ -rt_inline void rt_list_insert_before(rt_list_t *l, rt_list_t *n) -{ - l->prev->next = n; - n->prev = l->prev; - - l->prev = n; - n->next = l; -} - -/** - * @brief remove node from list. - * @param n the node to remove from the list. - */ -rt_inline void rt_list_remove(rt_list_t *n) -{ - n->next->prev = n->prev; - n->prev->next = n->next; - - n->next = n->prev = n; -} - -/** - * @brief tests whether a list is empty - * @param l the list to test. - */ -rt_inline int rt_list_isempty(const rt_list_t *l) -{ - return l->next == l; -} - -/** - * @brief get the struct for this entry - * @param node the entry point - * @param type the type of structure - * @param member the name of list in structure - */ -#define rt_list_entry(node, type, member) \ - ((type *)((char *)(node) - (unsigned long)(&((type *)0)->member))) - -/*@}*/ - -#ifdef __cplusplus -} -#endif - -#endif +/* + * File : rtservice.h + * This file is part of RT-Thread RTOS + * COPYRIGHT (C) 2006 - 2012, 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 + * 2006-03-16 Bernard the first version + * 2006-09-07 Bernard move the kservice APIs to rtthread.h + * 2007-06-27 Bernard fix the rt_list_remove bug + * 2012-03-22 Bernard rename kservice.h to rtservice.h + */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @addtogroup KernelService + */ + +/*@{*/ + +/** + * @brief initialize a list + * + * @param l list to be initialized + */ +rt_inline void rt_list_init(rt_list_t *l) +{ + l->next = l->prev = l; +} + +/** + * @brief insert a node after a list + * + * @param l list to insert it + * @param n new node to be inserted + */ +rt_inline void rt_list_insert_after(rt_list_t *l, rt_list_t *n) +{ + l->next->prev = n; + n->next = l->next; + + l->next = n; + n->prev = l; +} + +/** + * @brief insert a node before a list + * + * @param n new node to be inserted + * @param l list to insert it + */ +rt_inline void rt_list_insert_before(rt_list_t *l, rt_list_t *n) +{ + l->prev->next = n; + n->prev = l->prev; + + l->prev = n; + n->next = l; +} + +/** + * @brief remove node from list. + * @param n the node to remove from the list. + */ +rt_inline void rt_list_remove(rt_list_t *n) +{ + n->next->prev = n->prev; + n->prev->next = n->next; + + n->next = n->prev = n; +} + +/** + * @brief tests whether a list is empty + * @param l the list to test. + */ +rt_inline int rt_list_isempty(const rt_list_t *l) +{ + return l->next == l; +} + +/** + * @brief get the struct for this entry + * @param node the entry point + * @param type the type of structure + * @param member the name of list in structure + */ +#define rt_list_entry(node, type, member) \ + ((type *)((char *)(node) - (unsigned long)(&((type *)0)->member))) + +/*@}*/ + +#ifdef __cplusplus +} +#endif diff --git a/include/rtthread.h b/include/rtthread.h index b491c9e73..4fde569cf 100644 --- a/include/rtthread.h +++ b/include/rtthread.h @@ -22,6 +22,7 @@ #include #include +#include #ifdef __cplusplus extern "C" { diff --git a/src/device.c b/src/device.c index 90d3cb501..60335a941 100644 --- a/src/device.c +++ b/src/device.c @@ -14,7 +14,6 @@ */ #include -#include "kservice.h" #ifdef RT_USING_DEVICE diff --git a/src/idle.c b/src/idle.c index 93ce0352d..19cb35142 100644 --- a/src/idle.c +++ b/src/idle.c @@ -15,7 +15,6 @@ #include #include -#include "kservice.h" #ifndef IDLE_THREAD_STACK_SIZE #if defined (RT_USING_HOOK) || defined(RT_USING_HEAP) diff --git a/src/ipc.c b/src/ipc.c index 0105b1dc0..01dded383 100644 --- a/src/ipc.c +++ b/src/ipc.c @@ -40,8 +40,6 @@ #include #include -#include "kservice.h" - #ifdef RT_USING_HOOK extern void (*rt_object_trytake_hook)(struct rt_object *object); extern void (*rt_object_take_hook)(struct rt_object *object); diff --git a/src/mempool.c b/src/mempool.c index 6eb57c383..5ca3b2654 100644 --- a/src/mempool.c +++ b/src/mempool.c @@ -22,8 +22,6 @@ #include #include -#include "kservice.h" - #ifdef RT_USING_MEMPOOL #ifdef RT_USING_HOOK diff --git a/src/module.c b/src/module.c index 885391913..e4740dcf9 100644 --- a/src/module.c +++ b/src/module.c @@ -21,7 +21,6 @@ #include #include "string.h" -#include "kservice.h" #ifdef RT_USING_MODULE #include "module.h" diff --git a/src/object.c b/src/object.c index 78b7fd784..ce8c437a5 100644 --- a/src/object.c +++ b/src/object.c @@ -20,8 +20,6 @@ #include #include -#include "kservice.h" - #define _OBJ_CONTAINER_LIST_INIT(c) \ {&(rt_object_container[c].object_list), &(rt_object_container[c].object_list)} struct rt_object_information rt_object_container[RT_Object_Class_Unknown] = diff --git a/src/scheduler.c b/src/scheduler.c index 9c6aa8185..a55cea228 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -29,8 +29,6 @@ #include #include -#include "kservice.h" - static rt_int16_t rt_scheduler_lock_nest; extern volatile rt_uint8_t rt_interrupt_nest; diff --git a/src/slab.c b/src/slab.c index 04cfa3c98..63b355a03 100644 --- a/src/slab.c +++ b/src/slab.c @@ -54,7 +54,6 @@ #include #include -#include "kservice.h" #define RT_MEM_STATS diff --git a/src/thread.c b/src/thread.c index 450821896..b964099a7 100644 --- a/src/thread.c +++ b/src/thread.c @@ -27,7 +27,6 @@ #include #include -#include "kservice.h" extern rt_list_t rt_thread_priority_table[RT_THREAD_PRIORITY_MAX]; extern struct rt_thread *rt_current_thread; diff --git a/src/timer.c b/src/timer.c index c3fb8a521..03babc49f 100644 --- a/src/timer.c +++ b/src/timer.c @@ -22,8 +22,6 @@ #include #include -#include "kservice.h" - /* hard timer list */ static rt_list_t rt_timer_list;