#ifndef _BASEQUEUE_H_ #define _BASEQUEUE_H_ #include "HIDO_TypeDef.h" typedef struct { HIDO_UINT32 m_u32UsedCnt; HIDO_UINT32 m_u32Front; HIDO_UINT32 m_u32Rear; HIDO_UINT32 m_u32TotalCnt; }HIDO_BaseQueueStruct; typedef struct { HIDO_VOID *m_pAddr; HIDO_UINT32 m_u32Len; }HIDO_BaseQueueMemInfoStruct; HIDO_INT32 HIDO_BaseQueueInit(HIDO_BaseQueueStruct *_pstBaseQ, HIDO_UINT32 _u32TotalCnt); HIDO_INT32 HIDO_BaseQueueEnqueue(HIDO_BaseQueueStruct *_pstBaseQ, HIDO_UINT32 _u32EnqueueCnt); HIDO_INT32 HIDO_BaseQueueDequeue(HIDO_BaseQueueStruct *_pstBaseQ, HIDO_UINT32 _u32DequeueCnt); HIDO_BOOL HIDO_BaseQueueIsEmpty(HIDO_BaseQueueStruct *_pstBaseQ); HIDO_BOOL HIDO_BaseQueueIsFull(HIDO_BaseQueueStruct *_pstBaseQ); HIDO_INT32 HIDO_BaseQueueGetContinuousSize(HIDO_BaseQueueStruct *_pstBaseQ, HIDO_UINT32 _u32Size, HIDO_UINT32 *_pu32Offset, HIDO_UINT32 *_pu32TotalLen); HIDO_UINT32 HIDO_BaseQueueGetFront(HIDO_BaseQueueStruct *_pstBaseQ); HIDO_UINT32 HIDO_BaseQueueGetRear(HIDO_BaseQueueStruct *_pstBaseQ); #endif /* _BASEQUEUE_H_ */