42 void __esos_CB_Init(
CBUFFER* pst_CBuffer, uint8_t* pau8_ptr, uint16_t u16_Len) {
44 pst_CBuffer->u16_Start = 0;
45 pst_CBuffer->u16_Count = 0;
46 pst_CBuffer->u16_Length = u16_Len;
47 pst_CBuffer->pau8_Data = pau8_ptr;
54 #define __WRITE_CB_UINT8(pstB,u8x,u16e) \
56 if ((pstB)->u16_Count < (pstB)->u16_Length) { \
57 (u16e) = ((pstB)->u16_Start + (pstB)->u16_Count) % (pstB)->u16_Length; \
58 (pstB)->pau8_Data[(u16e)] = (u8x); \
59 ++(pstB)->u16_Count; \
63 #define __OVERWRITE_CB_UINT8(pstB,u8x,u16e) \
65 (u16e) = ((pstB)->u16_Start + (pstB)->u16_Count) % (pstB)->u16_Length; \
66 (pstB)->pau8_Data[(u16e)] = (u8x); \
67 if ((pstB)->u16_Count == (pstB)->u16_Length) \
68 (pstB)->u16_Start = ((pstB)->u16_Start + 1) % (pstB)->u16_Length; \
70 ++(pstB)->u16_Count; \
73 #define __READ_CB_UINT8(pstB,u8x) \
75 (u8x) = (pstB)->pau8_Data[(pstB)->u16_Start]; \
76 (pstB)->u16_Start = ((pstB)->u16_Start + 1) % (pstB)->u16_Length; \
77 --(pstB)->u16_Count; \
98 __WRITE_CB_UINT8(pst_CBuffer,u8_x,u16_end);
101 void __esos_CB_OverwriteUINT8(
CBUFFER* pst_CBuffer, uint8_t u8_x ) {
104 __OVERWRITE_CB_UINT8(pst_CBuffer,u8_x,u16_end);
107 void __esos_CB_WriteUINT16(
CBUFFER* pst_CBuffer, uint16_t u16_x ) {
111 u8_temp = (uint8_t) u16_x & 0xFF;
112 __WRITE_CB_UINT8(pst_CBuffer,u8_temp,u16_end);
113 u8_temp = (uint8_t) (u16_x>>8);
114 __WRITE_CB_UINT8(pst_CBuffer,u8_temp,u16_end);
117 void __esos_CB_WriteUINT32(
CBUFFER* pst_CBuffer, uint32_t u32_x ) {
121 u8_temp = (uint8_t) u32_x & 0xFF;
122 __WRITE_CB_UINT8(pst_CBuffer,u8_temp,u16_end);
123 u8_temp = (uint8_t) (u32_x>>8);
124 __WRITE_CB_UINT8(pst_CBuffer,u8_temp,u16_end);
125 u8_temp = (uint8_t) (u32_x>>16);
126 __WRITE_CB_UINT8(pst_CBuffer,u8_temp,u16_end);
127 u8_temp = (uint8_t) (u32_x>>24);
128 __WRITE_CB_UINT8(pst_CBuffer,u8_temp,u16_end);
131 void __esos_CB_WriteUINT8Buffer(
CBUFFER* pst_CBuffer, uint8_t* pu8_x, uint16_t u16_size ) {
132 uint16_t u16_i, u16_end;
134 for (u16_i=0; u16_i<u16_size; u16_i++) {
135 __WRITE_CB_UINT8(pst_CBuffer, pu8_x[u16_i], u16_end);
142 uint8_t __esos_CB_ReadUINT8(
CBUFFER* pst_CBuffer ) {
145 __READ_CB_UINT8(pst_CBuffer, u8_retval);
149 uint16_t __esos_CB_ReadUINT16(
CBUFFER* pst_CBuffer ) {
153 __READ_CB_UINT8(pst_CBuffer, u8_temp);
154 u16_retval = (uint16_t) u8_temp;
155 __READ_CB_UINT8(pst_CBuffer, u8_temp);
156 u16_retval += ((uint16_t) u8_temp)<<8;
160 uint32_t __esos_CB_ReadUINT32(
CBUFFER* pst_CBuffer ) {
164 __READ_CB_UINT8(pst_CBuffer, u8_temp);
165 u32_retval = (uint32_t) u8_temp;
166 __READ_CB_UINT8(pst_CBuffer, u8_temp);
167 u32_retval += (((uint32_t) u8_temp)<<8);
168 __READ_CB_UINT8(pst_CBuffer, u8_temp);
169 u32_retval += (((uint32_t) u8_temp)<<16);
170 __READ_CB_UINT8(pst_CBuffer, u8_temp);
171 u32_retval += (((uint32_t) u8_temp)<<24);
176 void __esos_CB_ReadUINT8Buffer(
CBUFFER* pst_CBuffer, uint8_t* pu8_x, uint16_t u16_size ) {
179 for (u16_i=0; u16_i<u16_size; u16_i++) {
180 __READ_CB_UINT8(pst_CBuffer, pu8_x[u16_i]);