33 #ifndef SBG_STREAM_BUFFER_BE_H
34 #define SBG_STREAM_BUFFER_BE_H
50 int16_t bytesValues[2];
67 #if (SBG_CONFIG_UNALIGNED_ACCESS_AUTH == 1) && (SBG_CONFIG_BIG_ENDIAN == 1)
78 return bytesValues[0];
89 #if (SBG_CONFIG_BIG_ENDIAN == 1)
90 return bytesValues[1] | (bytesValues[0] << 8);
92 return bytesValues[0] | (bytesValues[1] << 8);
119 uint16_t bytesValues[2];
136 #if (SBG_CONFIG_UNALIGNED_ACCESS_AUTH == 1) && (SBG_CONFIG_BIG_ENDIAN == 1)
140 bytesValues[0] = *((uint16_t*)pHandle->
pCurrentPtr);
147 return bytesValues[0];
158 #if (SBG_CONFIG_BIG_ENDIAN == 1)
159 return bytesValues[1] | (bytesValues[0] << 8);
161 return bytesValues[0] | (bytesValues[1] << 8);
210 #if (SBG_CONFIG_BIG_ENDIAN == 1)
229 return value.value >> (32-24);
276 #if (SBG_CONFIG_BIG_ENDIAN == 1)
295 return value.value >> (32-24);
320 int32_t bytesValues[4];
337 #if (SBG_CONFIG_UNALIGNED_ACCESS_AUTH == 1) && (SBG_CONFIG_BIG_ENDIAN == 1)
341 bytesValues[0] = *((int32_t*)pHandle->
pCurrentPtr);
348 return bytesValues[0];
361 #if (SBG_CONFIG_BIG_ENDIAN == 1)
362 return bytesValues[3] | (bytesValues[2] << 8) | (bytesValues[1] << 16) | (bytesValues[0] << 24);
364 return bytesValues[0] | (bytesValues[1] << 8) | (bytesValues[2] << 16) | (bytesValues[3] << 24);
391 uint32_t bytesValues[4];
408 #if (SBG_CONFIG_UNALIGNED_ACCESS_AUTH == 1) && (SBG_CONFIG_BIG_ENDIAN == 1)
412 bytesValues[0] = *((uint32_t*)pHandle->
pCurrentPtr);
419 return bytesValues[0];
432 #if (SBG_CONFIG_BIG_ENDIAN == 1)
433 return bytesValues[3] | (bytesValues[2] << 8) | (bytesValues[1] << 16) | (bytesValues[0] << 24);
435 return bytesValues[0] | (bytesValues[1] << 8) | (bytesValues[2] << 16) | (bytesValues[3] << 24);
484 #if (SBG_CONFIG_BIG_ENDIAN == 1)
507 return value.value >> (64-40);
554 #if (SBG_CONFIG_BIG_ENDIAN == 1)
577 return value.value >> (64-40);
624 #if (SBG_CONFIG_BIG_ENDIAN == 1)
649 return value.value >> (64-48);
696 #if (SBG_CONFIG_BIG_ENDIAN == 1)
721 return value.value >> (64-48);
768 #if (SBG_CONFIG_BIG_ENDIAN == 1)
795 return value.value >> (64-56);
842 #if (SBG_CONFIG_BIG_ENDIAN == 1)
869 return value.value >> (64-56);
912 #if (SBG_CONFIG_UNALIGNED_ACCESS_AUTH == 1) && (SBG_CONFIG_BIG_ENDIAN == 1)
934 #if (SBG_CONFIG_BIG_ENDIAN == 1)
935 return (lowPart << 32) | highPart;
937 return lowPart | (highPart << 32);
982 #if (SBG_CONFIG_UNALIGNED_ACCESS_AUTH == 1) && (SBG_CONFIG_BIG_ENDIAN == 1)
1004 #if (SBG_CONFIG_BIG_ENDIAN == 1)
1005 return (lowPart << 32) | highPart;
1007 return lowPart | (highPart << 32);
1063 assert((
sizeof(
size_t) == 8) || ((
sizeof(
size_t) == 4) && (size <= UINT32_MAX)));
1068 return (
size_t)size;
1101 return floatInt.valF;
1148 return doubleInt.valF;
1193 #if (SBG_CONFIG_UNALIGNED_ACCESS_AUTH == 1) && (SBG_CONFIG_BIG_ENDIAN == 1)
1207 #if (SBG_CONFIG_BIG_ENDIAN == 1)
1209 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1211 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1252 #if (SBG_CONFIG_UNALIGNED_ACCESS_AUTH == 1) && (SBG_CONFIG_BIG_ENDIAN == 1)
1266 #if (SBG_CONFIG_BIG_ENDIAN == 1)
1268 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1270 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1306 if ( (value >= SBG_MIN_INT_24) && (value <= SBG_MAX_INT_24) )
1316 #if (SBG_CONFIG_BIG_ENDIAN == 1)
1318 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1319 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 16);
1321 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 16);
1322 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1365 if (value <= SBG_MAX_UINT_24)
1375 #if (SBG_CONFIG_BIG_ENDIAN == 1)
1377 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1378 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 16);
1380 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 16);
1381 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1429 #if (SBG_CONFIG_UNALIGNED_ACCESS_AUTH == 1) && (SBG_CONFIG_BIG_ENDIAN == 1)
1443 #if (SBG_CONFIG_BIG_ENDIAN == 1)
1445 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1446 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 16);
1447 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 24);
1449 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 24);
1450 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 16);
1451 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1492 #if (SBG_CONFIG_UNALIGNED_ACCESS_AUTH == 1) && (SBG_CONFIG_BIG_ENDIAN == 1)
1506 #if (SBG_CONFIG_BIG_ENDIAN == 1)
1508 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1509 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 16);
1510 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 24);
1512 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 24);
1513 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 16);
1514 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1541 assert(value < ((uint64_t)1 << 48));
1556 #if (SBG_CONFIG_BIG_ENDIAN == 1)
1558 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1559 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 16);
1560 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 24);
1561 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 32);
1562 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 40);
1564 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 40);
1565 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 32);
1566 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 24);
1567 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 16);
1568 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1608 #if (SBG_CONFIG_UNALIGNED_ACCESS_AUTH == 1) && (SBG_CONFIG_BIG_ENDIAN == 1)
1622 #if (SBG_CONFIG_BIG_ENDIAN == 1)
1624 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1625 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 16);
1626 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 24);
1627 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 32);
1628 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 40);
1629 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 48);
1630 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 56);
1632 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 56);
1633 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 48);
1634 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 40);
1635 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 32);
1636 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 24);
1637 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 16);
1638 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1679 #if (SBG_CONFIG_UNALIGNED_ACCESS_AUTH == 1) && (SBG_CONFIG_BIG_ENDIAN == 1)
1693 #if (SBG_CONFIG_BIG_ENDIAN == 1)
1695 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1696 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 16);
1697 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 24);
1698 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 32);
1699 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 40);
1700 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 48);
1701 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 56);
1703 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 56);
1704 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 48);
1705 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 40);
1706 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 32);
1707 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 24);
1708 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 16);
1709 *(pHandle->
pCurrentPtr++) = (uint8_t)(value >> 8);
1740 assert(value <= UINT32_MAX);
1789 floatInt.valF = value;
1821 doubleInt.valF = value;
1843 size_t stringLength;
1847 assert(maxSize > 0);
1859 if (stringLength <= maxSize)
1869 SBG_LOG_ERROR(pHandle->
errorCode,
"Trying to store a string of %zu bytes into a buffer of %zu bytes.", stringLength, maxSize);
1885 size_t stringLength;
1899 stringLength = strlen(pString)+1;
1901 if (stringLength <= UINT32_MAX)
1917 SBG_LOG_ERROR(pHandle->
errorCode,
"The provided string is too big to fit in a 32 bit size_t");
#define SBG_INLINE
Definition: sbgDefines.h:227
enum _SbgErrorCode SbgErrorCode
@ SBG_BUFFER_OVERFLOW
Definition: sbgErrorCodes.h:59
@ SBG_NO_ERROR
Definition: sbgErrorCodes.h:48
@ SBG_INVALID_PARAMETER
Definition: sbgErrorCodes.h:60
SBG_INLINE SbgErrorCode sbgStreamBufferWriteInt16BE(SbgStreamBuffer *pHandle, int16_t value)
Definition: sbgStreamBufferBE.h:1176
SBG_INLINE SbgErrorCode sbgStreamBufferWriteInt24BE(SbgStreamBuffer *pHandle, int32_t value)
Definition: sbgStreamBufferBE.h:1294
SBG_INLINE int64_t sbgStreamBufferReadInt48BE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:600
SBG_INLINE double sbgStreamBufferReadDoubleBE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:1124
SBG_INLINE SbgErrorCode sbgStreamBufferReadStringBE(SbgStreamBuffer *pHandle, char *pString, size_t maxSize)
Definition: sbgStreamBufferBE.h:1841
SBG_INLINE int64_t sbgStreamBufferReadInt56BE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:744
SBG_INLINE SbgErrorCode sbgStreamBufferWriteInt32BE(SbgStreamBuffer *pHandle, int32_t value)
Definition: sbgStreamBufferBE.h:1412
SBG_INLINE uint64_t sbgStreamBufferReadUint64BE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:962
SBG_INLINE int32_t sbgStreamBufferReadInt32BE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:318
SBG_INLINE size_t sbgStreamBufferReadSizeT64BE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:1049
SBG_INLINE int64_t sbgStreamBufferReadInt64BE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:892
SBG_INLINE uint16_t sbgStreamBufferReadUint16BE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:117
SBG_INLINE int64_t sbgStreamBufferReadInt40BE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:460
SBG_INLINE int64_t sbgStreamBufferReadUint56BE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:818
SBG_INLINE SbgErrorCode sbgStreamBufferWriteUint48BE(SbgStreamBuffer *pHandle, uint64_t value)
Definition: sbgStreamBufferBE.h:1538
SBG_INLINE SbgErrorCode sbgStreamBufferWriteInt64BE(SbgStreamBuffer *pHandle, int64_t value)
Definition: sbgStreamBufferBE.h:1591
SBG_INLINE uint32_t sbgStreamBufferReadUint24BE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:252
SBG_INLINE SbgErrorCode sbgStreamBufferWriteSizeT32BE(SbgStreamBuffer *pHandle, size_t value)
Definition: sbgStreamBufferBE.h:1733
SBG_INLINE SbgErrorCode sbgStreamBufferWriteUint32BE(SbgStreamBuffer *pHandle, uint32_t value)
Definition: sbgStreamBufferBE.h:1475
SBG_INLINE SbgErrorCode sbgStreamBufferWriteFloatBE(SbgStreamBuffer *pHandle, float value)
Definition: sbgStreamBufferBE.h:1775
SBG_INLINE int16_t sbgStreamBufferReadInt16BE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:48
SBG_INLINE size_t sbgStreamBufferReadSizeT32BE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:1032
SBG_INLINE SbgErrorCode sbgStreamBufferWriteStringBE(SbgStreamBuffer *pHandle, const char *pString)
Definition: sbgStreamBufferBE.h:1883
SBG_INLINE uint64_t sbgStreamBufferReadUint40BE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:530
SBG_INLINE float sbgStreamBufferReadFloatBE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:1077
SBG_INLINE SbgErrorCode sbgStreamBufferWriteSizeT64BE(SbgStreamBuffer *pHandle, size_t value)
Definition: sbgStreamBufferBE.h:1755
SBG_INLINE uint32_t sbgStreamBufferReadUint32BE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:389
SBG_INLINE SbgErrorCode sbgStreamBufferWriteUint24BE(SbgStreamBuffer *pHandle, uint32_t value)
Definition: sbgStreamBufferBE.h:1353
SBG_INLINE SbgErrorCode sbgStreamBufferWriteUint64BE(SbgStreamBuffer *pHandle, uint64_t value)
Definition: sbgStreamBufferBE.h:1662
SBG_INLINE int32_t sbgStreamBufferReadInt24BE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:186
SBG_INLINE SbgErrorCode sbgStreamBufferWriteDoubleBE(SbgStreamBuffer *pHandle, double value)
Definition: sbgStreamBufferBE.h:1807
SBG_INLINE SbgErrorCode sbgStreamBufferWriteUint16BE(SbgStreamBuffer *pHandle, uint16_t value)
Definition: sbgStreamBufferBE.h:1235
SBG_INLINE uint64_t sbgStreamBufferReadUint48BE(SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferBE.h:672
Used to read/write data from/to a memory buffer stream.
SBG_INLINE SbgErrorCode sbgStreamBufferReadBuffer(SbgStreamBuffer *pHandle, void *pBuffer, size_t numBytesToRead)
Definition: sbgStreamBufferCommon.h:624
SBG_INLINE SbgErrorCode sbgStreamBufferWriteBuffer(SbgStreamBuffer *pHandle, const void *pBuffer, size_t numBytesToWrite)
Definition: sbgStreamBufferCommon.h:794
SBG_INLINE size_t sbgStreamBufferGetSpace(const SbgStreamBuffer *pHandle)
Definition: sbgStreamBufferCommon.h:357
Definition: sbgStreamBufferCommon.h:201
SbgErrorCode errorCode
Definition: sbgStreamBufferCommon.h:206
uint8_t * pCurrentPtr
Definition: sbgStreamBufferCommon.h:205
Definition: sbgTypes.h:149
Definition: sbgTypes.h:139
Definition: sbgTypes.h:103
Definition: sbgTypes.h:121
Definition: sbgTypes.h:112
Definition: sbgTypes.h:130