64 lines
1.6 KiB
C
64 lines
1.6 KiB
C
![]() |
#ifndef __OSPSOFTH__
|
|||
|
#define __OSPSOFTH__
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
extern "C" {
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
|
|||
|
typedef struct tag_Osp_SoftQue
|
|||
|
{
|
|||
|
lx_sem_t mutex;
|
|||
|
lx_sem_t sem;
|
|||
|
int32_t Id; //QUEUE ID
|
|||
|
char Name[32];
|
|||
|
int32_t EnIdx; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int32_t DeIdx; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int32_t Dep; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int32_t CurNum;
|
|||
|
uint64_t EnCnt; //<2F><><EFBFBD><EFBFBD>ͳ<EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>
|
|||
|
uint64_t DeCnt; //<2F><><EFBFBD><EFBFBD>ͳ<EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>
|
|||
|
uint64_t FullCnt; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>
|
|||
|
uint64_t EmptyCnt; //<2F><><EFBFBD>п<EFBFBD>ͳ<EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>
|
|||
|
uint32_t Mask;
|
|||
|
uint64_t Buf[];
|
|||
|
}Osp_SoftQue;
|
|||
|
|
|||
|
|
|||
|
#define QUE_NEED_WAKE 1
|
|||
|
#define QUE_NO_NEED_WAKE 0
|
|||
|
|
|||
|
#define QUE_ISBLOCK 1
|
|||
|
#define QUE_NOBLOCK 0
|
|||
|
|
|||
|
|
|||
|
int32_t osp_create_softque(Osp_SoftQue *que, int32_t Dep, char *name);
|
|||
|
int32_t osp_soft_que_enque(uint64_t value, Osp_SoftQue *que, int32_t IsNeedWake);
|
|||
|
int32_t osp_softque_deque(uint64_t *pvalue, Osp_SoftQue *que, int32_t IsBlock);
|
|||
|
int32_t osp_softque_dequetry(uint64_t *pvalue, Osp_SoftQue *que);
|
|||
|
int32_t osp_softque_dequeTimeOut(uint64_t *pvalue, Osp_SoftQue *que, uint32_t timeout);
|
|||
|
int32_t osp_get_soft_que_info(Osp_SoftQue *que, char *pbuf);
|
|||
|
int32_t osp_get_soft_que_desc(char *pbuf);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#define OSP_SOFTQ_ENCNT(que) que->EnCnt
|
|||
|
#define OSP_SOFTQ_DECNT(que) que->DeCnt
|
|||
|
#define OSP_SOFTQ_CUR(que) que->CurNum
|
|||
|
#define OSP_SOFTQ_DEP(que) que->Dep
|
|||
|
|
|||
|
|
|||
|
#define OSP_SOFTQ_SIZE(dep) (sizeof(Osp_SoftQue) + sizeof(uint64_t) * dep)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
}
|
|||
|
#endif
|
|||
|
|
|||
|
#endif /* __OSPSOFTH__ */
|
|||
|
|