📄 queue.hpp
字号:
//==========================================================================================
//--文件名:
//--
//--功 能:
//--
//--作 者:陈 斌
//--
//--版本号:v1.00
//--
//--时 间:2006.12.31
//==========================================================================================
#ifndef QUEUE_HPP
#define QUEUE_HPP
#include <Config/OS_CON.Hpp>
#include <os_cpu.Hpp>
#define DQUEU_UINT8 0x10
#define DQUEU_FUN 0x20
class OS_QCB;
class OS_QDCB;
class OS_FUN_QD;
class OS_FIFOECB;
OS_EID CreEven(OS_QCB*,OS_FLAGS,OS_STATE);
void CreEven(OS_EID,OS_QCB*,OS_FLAGS,OS_STATE);
#define Push_Over() if(pQcb->pPush > pQcb->pTop){pQcb->pPush = pQcb->pBottom;}
#define Ppop_Out() if(pQcb->pPop < pQcb->pBottom){pQcb->pPop = pQcb->pTop;}
#define Ppop_Over() if(pQcb->pPop > pQcb->pTop){pQcb->pPop = pQcb->pBottom;}
class OS_QCB:public E_LAND
{
public:
OS_QCB(OS_QDCB*,OS_QDCB*);
void PUSH_ADJUST();
OS_FLAGS POP_ADJUST(OS_ECB*, TIMETYPE);
void ResetQueue();
#if DOS_QUELOCK == EN
UINT8 SetLock(OS_ETCB* pEtcb);
void Unlock();
#endif
OS_QDCB* pPush;
OS_QDCB* pPop;
OS_QDCB* pTop;
OS_QDCB* pBottom;
OS_EID Eid;
OS_FLAGS Qmax;
#if DOS_QUELOCK == EN
OS_ETCB* pUseEtcb;
#endif
private:
};
class OS_QDCB:public E_LAND
{
public:
protected:
};
class OS_UINT8_QD:public OS_QDCB
{
public:
OS_FLAGS PUSH_FIFO(OS_EID);
OS_FLAGS PUSH_LIFO(OS_EID);
OS_FLAGS POP(OS_EID,TIMETYPE);
UINT8 Data;
};
class OS_FUN_QD:public OS_QDCB
{
OS_FLAGS PUSH_FIFO(OS_EID);
OS_FLAGS PUSH_LIFO(OS_EID);
OS_FLAGS POP(OS_EID,TIMETYPE);
void(*Data)();
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -