⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ssp_dll.c

📁 abstract rtos
💻 C
字号:
#include "syscfg.h"#ifdef __cplusplus#if __cplusplusextern "C"{#endif #endif #include "aos.h"DLL_NODE_S *dll_find(DLL_S *pList, VOID *pKey, 	S32 (*fnValCmp)(VOID *, DLL_NODE_S *)){	DLL_NODE_S *pNode;		DLL_Scan(pList, pNode, DLL_NODE_S *)	{		if (!fnValCmp(pKey, pNode))			return pNode;	}	return NULL;}VOID dll_insert_in_middle (DLL_S  *pList, DLL_NODE_S *pPrev, DLL_NODE_S *pMid, DLL_NODE_S *pNext){    pList->ulCount++;    pMid->pNext  = pNext;    pMid->pPrev  = pPrev;    pPrev->pNext = pMid;    pNext->pPrev = pMid;}VOID dll_delete_in_middle (DLL_S  *pList, DLL_NODE_S *pPrev, DLL_NODE_S *pNode, DLL_NODE_S *pNext){    pPrev->pNext = pNext;    pNext->pPrev = pPrev;    DLL_Init_Node(pNode);    (pList)->ulCount--;}VOID dll_insert (DLL_S  *pList, DLL_NODE_S *pPrev, DLL_NODE_S *pNode){    if(pPrev == NULL)    {        pPrev = &pList->Head;    }    dll_insert_in_middle(pList,pPrev,pNode,pPrev->pNext);}VOID dll_delete(DLL_S *pList, DLL_NODE_S *pNode){    if (DLL_Is_Node_In_List(pNode))    {        dll_delete_in_middle(pList, pNode->pPrev, pNode, pNode->pNext);    }} DLL_NODE_S *dll_get (DLL_S *pList){    DLL_NODE_S *pRetNode;    if(DLL_Count(pList) == 0)    {        return(NULL);    }    pRetNode = pList->Head.pNext;    dll_delete_in_middle(pList,&pList->Head,pList->Head.pNext,pList->Head.pNext->pNext);    return(pRetNode);}VOID dll_free_all(DLL_S *pList, VOID (*fnFree)(VOID *)){    DLL_NODE_S *pTempNode,*pNode,*pHead;    for(pHead = &pList->Head,pNode = pList->Head.pNext; pNode != pHead; pNode = pTempNode)    {        pTempNode = pNode->pNext;        fnFree(pNode);    }    DLL_Init(pList);}S32 dll_walk(DLL_S *pList, VOID (*fnVisit)(DLL_NODE_S *)){    DLL_NODE_S *pNode;    S32 nCnt;        nCnt = 0;    DLL_Scan(pList, pNode, DLL_NODE_S *)    {        fnVisit(pNode);        nCnt++;    }    return nCnt;}#ifdef __cplusplus#if __cplusplus}#endif #endif 

⌨️ 快捷键说明

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