59 typedef struct __stCIRCBUFF {
69 #define __ESOS_CB_FLUSH(pstCB) (pstCB)->u16_Count = 0
70 #define __ESOS_CB_IS_EMPTY(pstCB) ((pstCB)->u16_Count == 0)
71 #define __ESOS_CB_IS_NOT_EMPTY(pstCB) ((pstCB)->u16_Count != 0)
72 #define __ESOS_CB_IS_FULL(pstCB) ((pstCB)->u16_Length == (pstCB)->u16_Count)
73 #define __ESOS_CB_GET_LENGTH(pstCB) ((pstCB)->u16_Length)
74 #define __ESOS_CB_GET_COUNT(pstCB) ((pstCB)->u16_Count)
75 #define __ESOS_CB_GET_AVAILABLE(pstCB) (__ESOS_CB_GET_LENGTH(pstCB)-__ESOS_CB_GET_COUNT(pstCB))
76 #define __ESOS_CB_IS_AVAILABLE_AT_LEAST(pstCB, x) (__ESOS_CB_GOT_AVAILABLE((pstCB))>=(x))
77 #define __ESOS_CB_IS_AVAILABLE_EXACTLY(pstCB, x) (__ESOS_CB_GOT_AVAILABLE((pstCB))==(x))
79 #define ESOS_TASK_WAIT_WHILE_CB_IS_EMPTY(pstCB) ESOS_TASK_WAIT_WHILE(__ESOS_CB_IS_EMPTY((pstCB)))
80 #define ESOS_TASK_WAIT_WHILE_CB_IS_FULL(pstCB) ESOS_TASK_WAIT_WHILE(__ESOS_CB_IS_FULL((pstCB)))
81 #define ESOS_TASK_WAIT_UNTIL_CB_HAS_AVAILABLE_AT_LEAST(pstCB,x) ESOS_TASK_WAIT_UNTIL(__ESOS_CB_IS_AVAILABLE_AT_LEAST((pstCB),x))
90 void __esos_CB_Init(
CBUFFER* pst_CBuffer,
uint8_t* pau8_ptr, uint16_t u16_Length);
92 void __esos_CB_WriteUINT16(
CBUFFER* pst_CBuffer, uint16_t u16_x);
93 void __esos_CB_WriteUINT32(
CBUFFER* pst_CBuffer, uint32_t u32_x);
94 void __esos_CB_WriteUINT8Buffer(
CBUFFER* pst_CBuffer,
uint8_t* pu8_x, uint16_t u16_size );
99 uint16_t __esos_CB_ReadUINT16(
CBUFFER* pst_CBuffer);
100 uint32_t __esos_CB_ReadUINT32(
CBUFFER* pst_CBuffer);
101 void __esos_CB_ReadUINT8Buffer(
CBUFFER* pst_CBuffer,
uint8_t* pu8_x, uint16_t u16_size );