Skip to content

Commit 0a6a10d

Browse files
jukkarioannisg
authored andcommitted
sys: byteorder: Add support for sys_get_be64()
There is sys_get_le64() already but nothing for 64-bit big-endian version. Fixes #18258 Signed-off-by: Jukka Rissanen <[email protected]>
1 parent 3590c80 commit 0a6a10d

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

include/sys/byteorder.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,21 @@ static inline u32_t sys_get_be32(const u8_t src[4])
229229
return ((u32_t)sys_get_be16(&src[0]) << 16) | sys_get_be16(&src[2]);
230230
}
231231

232+
/**
233+
* @brief Get a 64-bit integer stored in big-endian format.
234+
*
235+
* Get a 64-bit integer, stored in big-endian format in a potentially
236+
* unaligned memory location, and convert it to the host endianness.
237+
*
238+
* @param src Location of the big-endian 64-bit integer to get.
239+
*
240+
* @return 64-bit integer in host endianness.
241+
*/
242+
static inline u64_t sys_get_be64(const u8_t src[8])
243+
{
244+
return ((u64_t)sys_get_be32(&src[0]) << 32) | sys_get_be32(&src[4]);
245+
}
246+
232247
/**
233248
* @brief Get a 16-bit integer stored in little-endian format.
234249
*

0 commit comments

Comments
 (0)