38 void __esos_CB_Init(
CBUFFER* pst_CBuffer,
uint8_t* pau8_ptr, uint16_t u16_Len) {
40 pst_CBuffer->u16_Start = 0;
41 pst_CBuffer->u16_Count = 0;
42 pst_CBuffer->u16_Length = u16_Len;
43 pst_CBuffer->pau8_Data = pau8_ptr;
50 #define __WRITE_CB_UINT8(pstB,u8x,u16e) \ 52 if ((pstB)->u16_Count < (pstB)->u16_Length) { \ 53 (u16e) = ((pstB)->u16_Start + (pstB)->u16_Count) % (pstB)->u16_Length; \ 54 (pstB)->pau8_Data[(u16e)] = (u8x); \ 55 ++(pstB)->u16_Count; \ 59 #define __OVERWRITE_CB_UINT8(pstB,u8x,u16e) \ 61 (u16e) = ((pstB)->u16_Start + (pstB)->u16_Count) % (pstB)->u16_Length; \ 62 (pstB)->pau8_Data[(u16e)] = (u8x); \ 63 if ((pstB)->u16_Count == (pstB)->u16_Length) \ 64 (pstB)->u16_Start = ((pstB)->u16_Start + 1) % (pstB)->u16_Length; \ 66 ++(pstB)->u16_Count; \ 69 #define __READ_CB_UINT8(pstB,u8x) \ 71 (u8x) = (pstB)->pau8_Data[(pstB)->u16_Start]; \ 72 (pstB)->u16_Start = ((pstB)->u16_Start + 1) % (pstB)->u16_Length; \ 73 --(pstB)->u16_Count; \ 93 __WRITE_CB_UINT8(pst_CBuffer,u8_x,u16_end);
96 void __esos_CB_OverwriteUINT8(
CBUFFER* pst_CBuffer,
uint8_t u8_x ) {
99 __OVERWRITE_CB_UINT8(pst_CBuffer,u8_x,u16_end);
102 void __esos_CB_WriteUINT16(
CBUFFER* pst_CBuffer, uint16_t u16_x ) {
106 u8_temp = (
uint8_t) u16_x & 0xFF;
107 __WRITE_CB_UINT8(pst_CBuffer,u8_temp,u16_end);
108 u8_temp = (
uint8_t) (u16_x>>8);
109 __WRITE_CB_UINT8(pst_CBuffer,u8_temp,u16_end);
112 void __esos_CB_WriteUINT32(
CBUFFER* pst_CBuffer, uint32_t u32_x ) {
116 u8_temp = (
uint8_t) u32_x & 0xFF;
117 __WRITE_CB_UINT8(pst_CBuffer,u8_temp,u16_end);
118 u8_temp = (
uint8_t) (u32_x>>8);
119 __WRITE_CB_UINT8(pst_CBuffer,u8_temp,u16_end);
120 u8_temp = (
uint8_t) (u32_x>>16);
121 __WRITE_CB_UINT8(pst_CBuffer,u8_temp,u16_end);
122 u8_temp = (
uint8_t) (u32_x>>24);
123 __WRITE_CB_UINT8(pst_CBuffer,u8_temp,u16_end);
126 void __esos_CB_WriteUINT8Buffer(
CBUFFER* pst_CBuffer,
uint8_t* pu8_x, uint16_t u16_size ) {
127 uint16_t u16_i, u16_end;
129 for (u16_i=0; u16_i<u16_size; u16_i++) {
130 __WRITE_CB_UINT8(pst_CBuffer, pu8_x[u16_i], u16_end);
140 __READ_CB_UINT8(pst_CBuffer, u8_retval);
144 uint16_t __esos_CB_ReadUINT16(
CBUFFER* pst_CBuffer ) {
148 __READ_CB_UINT8(pst_CBuffer, u8_temp);
149 u16_retval = (uint16_t) u8_temp;
150 __READ_CB_UINT8(pst_CBuffer, u8_temp);
151 u16_retval += ((uint16_t) u8_temp)<<8;
155 uint32_t __esos_CB_ReadUINT32(
CBUFFER* pst_CBuffer ) {
159 __READ_CB_UINT8(pst_CBuffer, u8_temp);
160 u32_retval = (uint32_t) u8_temp;
161 __READ_CB_UINT8(pst_CBuffer, u8_temp);
162 u32_retval += (((uint32_t) u8_temp)<<8);
163 __READ_CB_UINT8(pst_CBuffer, u8_temp);
164 u32_retval += (((uint32_t) u8_temp)<<16);
165 __READ_CB_UINT8(pst_CBuffer, u8_temp);
166 u32_retval += (((uint32_t) u8_temp)<<24);
171 void __esos_CB_ReadUINT8Buffer(
CBUFFER* pst_CBuffer,
uint8_t* pu8_x, uint16_t u16_size ) {
174 for (u16_i=0; u16_i<u16_size; u16_i++) {
175 __READ_CB_UINT8(pst_CBuffer, pu8_x[u16_i]);
void __esos_CB_WriteUINT8(CBUFFER *pst_CBuffer, uint8_t u8_x)
unsigned char uint8_t
An abbreviation for an 8-bit unsigned integer.