2 Star 6 Fork 4

稀风 / KOS

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
queue2.h 3.21 KB
一键复制 编辑 原始数据 按行查看 历史
稀风 提交于 2023-03-12 10:33 . 实现互斥锁:互斥锁实现
#ifndef __QUEUE_H_
#define __QUEUE_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <common.h>
#include <list.h>
typedef struct QUEUE
{
LIST_NODE list;
U32 length;
} QUEUE;
typedef LIST_NODE QUEUE_NODE;
// 获取队列节点首地址
#define QUEUE_NODE(ptr, type, member) container_of(ptr, type, member)
/******************************************************************************
* 函数名称: void QueueInit(QUEUE* queue)
* 功能说明: 队列初始化
* 输入参数: QUEUE* queue --队列
* 输出参数: 无
* 函数返回: 无
* 其它说明: 无
******************************************************************************/
void QueueInit(QUEUE* queue);
/******************************************************************************
* 函数名称: void QueueAdd(QUEUE* queue, QUEUE_NODE* node)
* 功能说明: 在队列尾插入一个节点
* 输入参数: QUEUE* queue --队列
    QUEUE_NODE* node --节点
* 输出参数: 无
* 函数返回: 无
* 其它说明: 无
******************************************************************************/
void QueueAdd(QUEUE* queue, QUEUE_NODE* node);
/******************************************************************************
* 函数名称: void QueueHeadAdd(QUEUE* queue, QUEUE_NODE* node)
* 功能说明: 在队列头插入一个节点
* 输入参数: QUEUE* queue --队列
    QUEUE_NODE* node --节点
* 输出参数: 无
* 函数返回: 无
* 其它说明: 无
******************************************************************************/
void QueueHeadAdd(QUEUE* queue, QUEUE_NODE* node);
/******************************************************************************
* 函数名称: QUEUE_NODE* QueueRemove(QUEUE* queue)
* 功能说明: 从队列头取出一个节点
* 输入参数: QUEUE* queue --队列
* 输出参数: 无
* 函数返回: 取出的节点
* 其它说明: 无
******************************************************************************/
QUEUE_NODE* QueueRemove(QUEUE* queue);
/******************************************************************************
* 函数名称: QUEUE_NODE* QueueTailRemove(QUEUE* queue)
* 功能说明: 从队列尾取出一个节点
* 输入参数: QUEUE* queue --队列
* 输出参数: 无
* 函数返回: 取出的节点
* 其它说明: 无
******************************************************************************/
QUEUE_NODE* QueueTailRemove(QUEUE* queue);
/******************************************************************************
* 函数名称: BOOL QueueIsEmpty(QUEUE* queue)
* 功能说明: 队列是否为空
* 输入参数: QUEUE* queue --队列
* 输出参数: 无
* 函数返回: 0:否; 1:是
* 其它说明: 无
******************************************************************************/
BOOL QueueIsEmpty(QUEUE* queue);
/******************************************************************************
* 函数名称: U32 QueueLength(QUEUE* queue)
* 功能说明: 获取队列长度
* 输入参数: QUEUE* queue --队列
* 输出参数: 无
* 函数返回: 队列长度
* 其它说明: 无
******************************************************************************/
U32 QueueLength(QUEUE* queue);
#ifdef __cplusplus
}
#endif
#endif
1
https://gitee.com/thin-wind/KOS.git
git@gitee.com:thin-wind/KOS.git
thin-wind
KOS
KOS
main

搜索帮助