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

📄 node.c

📁 一种用于编译时头文件的缓存处理缓存源代码,使用起来就像C/C++编译器的缓存预处理器,简化该功能相应的环境改变时对内核的影响。
💻 C
字号:
/********************************************************************
	created:	2008/01/23
	filename: 	node.c
	author:		Lichuang
                
	purpose:    
*********************************************************************/

#include "node.h"
#include "lock.h"
#include "operator.h"
#include "hash.h"
#include "lrulist.h"

int getfreenode(ccache_t* cache, cmpfun cmp, delfun fun)
{
    int index = cache->firstfreenode;
    node_t *node;
    void *data, *key;

    if (0 > index)
    {
        index = cache->lrulast;
        node = NODE(cache, index);
        int hash = node->hashindex;

        if (NULL != fun)
        {
            key = NODE_KEY(NODE(cache, index));
            data = NODE_DATA(NODE(cache, index));
            fun(key, data);
        }

        freefromlrulist(index, cache);

        DELETE_NODE(hash, index, cache, cmp);
    }
    else
    {
        node = NODE(cache, index);
        cache->firstfreenode = node->next;
    }

    return index;
}

⌨️ 快捷键说明

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