kservice.h.svn-base

来自「RT-Thread是发展中的下一代微内核嵌入式实时操作系统」· SVN-BASE 代码 · 共 101 行

SVN-BASE
101
字号
/* * File      : kservice.h * This file is part of RT-Thread RTOS * COPYRIGHT (C) 2006, 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://openlab.rt-thread.com/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 <rtthread.h>#ifdef __cplusplusextern "C" {#endif/** * @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

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?