Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
byteorder.h File Reference

Byte order helpers. More...

#include <zephyr/types.h>
#include <stddef.h>
#include <sys/__assert.h>
#include <toolchain.h>

Go to the source code of this file.

Macros

#define sys_le16_to_cpu(val)   (val)
 Convert 16-bit integer from little-endian to host endianness. More...
 
#define sys_cpu_to_le16(val)   (val)
 Convert 16-bit integer from host endianness to little-endian. More...
 
#define sys_le24_to_cpu(val)   (val)
 Convert 24-bit integer from little-endian to host endianness. More...
 
#define sys_cpu_to_le24(val)   (val)
 Convert 24-bit integer from host endianness to little-endian. More...
 
#define sys_le32_to_cpu(val)   (val)
 Convert 32-bit integer from little-endian to host endianness. More...
 
#define sys_cpu_to_le32(val)   (val)
 Convert 32-bit integer from host endianness to little-endian. More...
 
#define sys_le48_to_cpu(val)   (val)
 Convert 48-bit integer from little-endian to host endianness. More...
 
#define sys_cpu_to_le48(val)   (val)
 Convert 48-bit integer from host endianness to little-endian. More...
 
#define sys_le64_to_cpu(val)   (val)
 
#define sys_cpu_to_le64(val)   (val)
 
#define sys_be16_to_cpu(val)   __bswap_16(val)
 Convert 16-bit integer from big-endian to host endianness. More...
 
#define sys_cpu_to_be16(val)   __bswap_16(val)
 Convert 16-bit integer from host endianness to big-endian. More...
 
#define sys_be24_to_cpu(val)   __bswap_24(val)
 Convert 24-bit integer from big-endian to host endianness. More...
 
#define sys_cpu_to_be24(val)   __bswap_24(val)
 Convert 24-bit integer from host endianness to big-endian. More...
 
#define sys_be32_to_cpu(val)   __bswap_32(val)
 Convert 32-bit integer from big-endian to host endianness. More...
 
#define sys_cpu_to_be32(val)   __bswap_32(val)
 Convert 32-bit integer from host endianness to big-endian. More...
 
#define sys_be48_to_cpu(val)   __bswap_48(val)
 Convert 48-bit integer from big-endian to host endianness. More...
 
#define sys_cpu_to_be48(val)   __bswap_48(val)
 Convert 48-bit integer from host endianness to big-endian. More...
 
#define sys_be64_to_cpu(val)   __bswap_64(val)
 
#define sys_cpu_to_be64(val)   __bswap_64(val)
 

Functions

static void sys_put_be16 (uint16_t val, uint8_t dst[2])
 Put a 16-bit integer as big-endian to arbitrary location. More...
 
static void sys_put_be24 (uint32_t val, uint8_t dst[3])
 Put a 24-bit integer as big-endian to arbitrary location. More...
 
static void sys_put_be32 (uint32_t val, uint8_t dst[4])
 Put a 32-bit integer as big-endian to arbitrary location. More...
 
static void sys_put_be48 (uint64_t val, uint8_t dst[6])
 Put a 48-bit integer as big-endian to arbitrary location. More...
 
static void sys_put_be64 (uint64_t val, uint8_t dst[8])
 Put a 64-bit integer as big-endian to arbitrary location. More...
 
static void sys_put_le16 (uint16_t val, uint8_t dst[2])
 Put a 16-bit integer as little-endian to arbitrary location. More...
 
static void sys_put_le24 (uint32_t val, uint8_t dst[3])
 Put a 24-bit integer as little-endian to arbitrary location. More...
 
static void sys_put_le32 (uint32_t val, uint8_t dst[4])
 Put a 32-bit integer as little-endian to arbitrary location. More...
 
static void sys_put_le48 (uint64_t val, uint8_t dst[6])
 Put a 48-bit integer as little-endian to arbitrary location. More...
 
static void sys_put_le64 (uint64_t val, uint8_t dst[8])
 Put a 64-bit integer as little-endian to arbitrary location. More...
 
static uint16_t sys_get_be16 (const uint8_t src[2])
 Get a 16-bit integer stored in big-endian format. More...
 
static uint32_t sys_get_be24 (const uint8_t src[3])
 Get a 24-bit integer stored in big-endian format. More...
 
static uint32_t sys_get_be32 (const uint8_t src[4])
 Get a 32-bit integer stored in big-endian format. More...
 
static uint64_t sys_get_be48 (const uint8_t src[6])
 Get a 48-bit integer stored in big-endian format. More...
 
static uint64_t sys_get_be64 (const uint8_t src[8])
 Get a 64-bit integer stored in big-endian format. More...
 
static uint16_t sys_get_le16 (const uint8_t src[2])
 Get a 16-bit integer stored in little-endian format. More...
 
static uint32_t sys_get_le24 (const uint8_t src[3])
 Get a 24-bit integer stored in big-endian format. More...
 
static uint32_t sys_get_le32 (const uint8_t src[4])
 Get a 32-bit integer stored in little-endian format. More...
 
static uint64_t sys_get_le48 (const uint8_t src[6])
 Get a 48-bit integer stored in little-endian format. More...
 
static uint64_t sys_get_le64 (const uint8_t src[8])
 Get a 64-bit integer stored in little-endian format. More...
 
static void sys_memcpy_swap (void *dst, const void *src, size_t length)
 Swap one buffer content into another. More...
 
static void sys_mem_swap (void *buf, size_t length)
 Swap buffer content. More...
 

Detailed Description

Byte order helpers.

Macro Definition Documentation

◆ sys_be16_to_cpu

#define sys_be16_to_cpu (   val)    __bswap_16(val)

Convert 16-bit integer from big-endian to host endianness.

Parameters
val16-bit integer in big-endian format.
Returns
16-bit integer in host endianness.

◆ sys_be24_to_cpu

#define sys_be24_to_cpu (   val)    __bswap_24(val)

Convert 24-bit integer from big-endian to host endianness.

Parameters
val24-bit integer in big-endian format.
Returns
24-bit integer in host endianness.

◆ sys_be32_to_cpu

#define sys_be32_to_cpu (   val)    __bswap_32(val)

Convert 32-bit integer from big-endian to host endianness.

Parameters
val32-bit integer in big-endian format.
Returns
32-bit integer in host endianness.

◆ sys_be48_to_cpu

#define sys_be48_to_cpu (   val)    __bswap_48(val)

Convert 48-bit integer from big-endian to host endianness.

Parameters
val48-bit integer in big-endian format.
Returns
48-bit integer in host endianness.

◆ sys_be64_to_cpu

#define sys_be64_to_cpu (   val)    __bswap_64(val)

◆ sys_cpu_to_be16

#define sys_cpu_to_be16 (   val)    __bswap_16(val)

Convert 16-bit integer from host endianness to big-endian.

Parameters
val16-bit integer in host endianness.
Returns
16-bit integer in big-endian format.

◆ sys_cpu_to_be24

#define sys_cpu_to_be24 (   val)    __bswap_24(val)

Convert 24-bit integer from host endianness to big-endian.

Parameters
val24-bit integer in host endianness.
Returns
24-bit integer in big-endian format.

◆ sys_cpu_to_be32

#define sys_cpu_to_be32 (   val)    __bswap_32(val)

Convert 32-bit integer from host endianness to big-endian.

Parameters
val32-bit integer in host endianness.
Returns
32-bit integer in big-endian format.

◆ sys_cpu_to_be48

#define sys_cpu_to_be48 (   val)    __bswap_48(val)

Convert 48-bit integer from host endianness to big-endian.

Parameters
val48-bit integer in host endianness.
Returns
48-bit integer in big-endian format.

◆ sys_cpu_to_be64

#define sys_cpu_to_be64 (   val)    __bswap_64(val)

◆ sys_cpu_to_le16

#define sys_cpu_to_le16 (   val)    (val)

Convert 16-bit integer from host endianness to little-endian.

Parameters
val16-bit integer in host endianness.
Returns
16-bit integer in little-endian format.

◆ sys_cpu_to_le24

#define sys_cpu_to_le24 (   val)    (val)

Convert 24-bit integer from host endianness to little-endian.

Parameters
val24-bit integer in host endianness.
Returns
24-bit integer in little-endian format.

◆ sys_cpu_to_le32

#define sys_cpu_to_le32 (   val)    (val)

Convert 32-bit integer from host endianness to little-endian.

Parameters
val32-bit integer in host endianness.
Returns
32-bit integer in little-endian format.

◆ sys_cpu_to_le48

#define sys_cpu_to_le48 (   val)    (val)

Convert 48-bit integer from host endianness to little-endian.

Parameters
val48-bit integer in host endianness.
Returns
48-bit integer in little-endian format.

◆ sys_cpu_to_le64

#define sys_cpu_to_le64 (   val)    (val)

◆ sys_le16_to_cpu

#define sys_le16_to_cpu (   val)    (val)

Convert 16-bit integer from little-endian to host endianness.

Parameters
val16-bit integer in little-endian format.
Returns
16-bit integer in host endianness.

◆ sys_le24_to_cpu

#define sys_le24_to_cpu (   val)    (val)

Convert 24-bit integer from little-endian to host endianness.

Parameters
val24-bit integer in little-endian format.
Returns
24-bit integer in host endianness.

◆ sys_le32_to_cpu

#define sys_le32_to_cpu (   val)    (val)

Convert 32-bit integer from little-endian to host endianness.

Parameters
val32-bit integer in little-endian format.
Returns
32-bit integer in host endianness.

◆ sys_le48_to_cpu

#define sys_le48_to_cpu (   val)    (val)

Convert 48-bit integer from little-endian to host endianness.

Parameters
val48-bit integer in little-endian format.
Returns
48-bit integer in host endianness.

◆ sys_le64_to_cpu

#define sys_le64_to_cpu (   val)    (val)

Function Documentation

◆ sys_get_be16()

static uint16_t sys_get_be16 ( const uint8_t  src[2])
inlinestatic

Get a 16-bit integer stored in big-endian format.

Get a 16-bit integer, stored in big-endian format in a potentially unaligned memory location, and convert it to the host endianness.

Parameters
srcLocation of the big-endian 16-bit integer to get.
Returns
16-bit integer in host endianness.

◆ sys_get_be24()

static uint32_t sys_get_be24 ( const uint8_t  src[3])
inlinestatic

Get a 24-bit integer stored in big-endian format.

Get a 24-bit integer, stored in big-endian format in a potentially unaligned memory location, and convert it to the host endianness.

Parameters
srcLocation of the big-endian 24-bit integer to get.
Returns
24-bit integer in host endianness.

◆ sys_get_be32()

static uint32_t sys_get_be32 ( const uint8_t  src[4])
inlinestatic

Get a 32-bit integer stored in big-endian format.

Get a 32-bit integer, stored in big-endian format in a potentially unaligned memory location, and convert it to the host endianness.

Parameters
srcLocation of the big-endian 32-bit integer to get.
Returns
32-bit integer in host endianness.

◆ sys_get_be48()

static uint64_t sys_get_be48 ( const uint8_t  src[6])
inlinestatic

Get a 48-bit integer stored in big-endian format.

Get a 48-bit integer, stored in big-endian format in a potentially unaligned memory location, and convert it to the host endianness.

Parameters
srcLocation of the big-endian 48-bit integer to get.
Returns
48-bit integer in host endianness.

◆ sys_get_be64()

static uint64_t sys_get_be64 ( const uint8_t  src[8])
inlinestatic

Get a 64-bit integer stored in big-endian format.

Get a 64-bit integer, stored in big-endian format in a potentially unaligned memory location, and convert it to the host endianness.

Parameters
srcLocation of the big-endian 64-bit integer to get.
Returns
64-bit integer in host endianness.

◆ sys_get_le16()

static uint16_t sys_get_le16 ( const uint8_t  src[2])
inlinestatic

Get a 16-bit integer stored in little-endian format.

Get a 16-bit integer, stored in little-endian format in a potentially unaligned memory location, and convert it to the host endianness.

Parameters
srcLocation of the little-endian 16-bit integer to get.
Returns
16-bit integer in host endianness.

◆ sys_get_le24()

static uint32_t sys_get_le24 ( const uint8_t  src[3])
inlinestatic

Get a 24-bit integer stored in big-endian format.

Get a 24-bit integer, stored in big-endian format in a potentially unaligned memory location, and convert it to the host endianness.

Parameters
srcLocation of the big-endian 24-bit integer to get.
Returns
24-bit integer in host endianness.

◆ sys_get_le32()

static uint32_t sys_get_le32 ( const uint8_t  src[4])
inlinestatic

Get a 32-bit integer stored in little-endian format.

Get a 32-bit integer, stored in little-endian format in a potentially unaligned memory location, and convert it to the host endianness.

Parameters
srcLocation of the little-endian 32-bit integer to get.
Returns
32-bit integer in host endianness.

◆ sys_get_le48()

static uint64_t sys_get_le48 ( const uint8_t  src[6])
inlinestatic

Get a 48-bit integer stored in little-endian format.

Get a 48-bit integer, stored in little-endian format in a potentially unaligned memory location, and convert it to the host endianness.

Parameters
srcLocation of the little-endian 48-bit integer to get.
Returns
48-bit integer in host endianness.

◆ sys_get_le64()

static uint64_t sys_get_le64 ( const uint8_t  src[8])
inlinestatic

Get a 64-bit integer stored in little-endian format.

Get a 64-bit integer, stored in little-endian format in a potentially unaligned memory location, and convert it to the host endianness.

Parameters
srcLocation of the little-endian 64-bit integer to get.
Returns
64-bit integer in host endianness.

◆ sys_mem_swap()

static void sys_mem_swap ( void buf,
size_t  length 
)
inlinestatic

Swap buffer content.

In-place memory swap, where final content will be reversed. I.e.: buf[n] will be put in buf[end-n] Where n is an index and 'end' the last index of buf.

Parameters
bufA valid pointer on a memory area to swap
lengthSize of buf memory area

◆ sys_memcpy_swap()

static void sys_memcpy_swap ( void dst,
const void src,
size_t  length 
)
inlinestatic

Swap one buffer content into another.

Copy the content of src buffer into dst buffer in reversed order, i.e.: src[n] will be put in dst[end-n] Where n is an index and 'end' the last index in both arrays. The 2 memory pointers must be pointing to different areas, and have a minimum size of given length.

Parameters
dstA valid pointer on a memory area where to copy the data in
srcA valid pointer on a memory area where to copy the data from
lengthSize of both dst and src memory areas

◆ sys_put_be16()

static void sys_put_be16 ( uint16_t  val,
uint8_t  dst[2] 
)
inlinestatic

Put a 16-bit integer as big-endian to arbitrary location.

Put a 16-bit integer, originally in host endianness, to a potentially unaligned memory location in big-endian format.

Parameters
val16-bit integer in host endianness.
dstDestination memory address to store the result.

◆ sys_put_be24()

static void sys_put_be24 ( uint32_t  val,
uint8_t  dst[3] 
)
inlinestatic

Put a 24-bit integer as big-endian to arbitrary location.

Put a 24-bit integer, originally in host endianness, to a potentially unaligned memory location in big-endian format.

Parameters
val24-bit integer in host endianness.
dstDestination memory address to store the result.

◆ sys_put_be32()

static void sys_put_be32 ( uint32_t  val,
uint8_t  dst[4] 
)
inlinestatic

Put a 32-bit integer as big-endian to arbitrary location.

Put a 32-bit integer, originally in host endianness, to a potentially unaligned memory location in big-endian format.

Parameters
val32-bit integer in host endianness.
dstDestination memory address to store the result.

◆ sys_put_be48()

static void sys_put_be48 ( uint64_t  val,
uint8_t  dst[6] 
)
inlinestatic

Put a 48-bit integer as big-endian to arbitrary location.

Put a 48-bit integer, originally in host endianness, to a potentially unaligned memory location in big-endian format.

Parameters
val48-bit integer in host endianness.
dstDestination memory address to store the result.

◆ sys_put_be64()

static void sys_put_be64 ( uint64_t  val,
uint8_t  dst[8] 
)
inlinestatic

Put a 64-bit integer as big-endian to arbitrary location.

Put a 64-bit integer, originally in host endianness, to a potentially unaligned memory location in big-endian format.

Parameters
val64-bit integer in host endianness.
dstDestination memory address to store the result.

◆ sys_put_le16()

static void sys_put_le16 ( uint16_t  val,
uint8_t  dst[2] 
)
inlinestatic

Put a 16-bit integer as little-endian to arbitrary location.

Put a 16-bit integer, originally in host endianness, to a potentially unaligned memory location in little-endian format.

Parameters
val16-bit integer in host endianness.
dstDestination memory address to store the result.

◆ sys_put_le24()

static void sys_put_le24 ( uint32_t  val,
uint8_t  dst[3] 
)
inlinestatic

Put a 24-bit integer as little-endian to arbitrary location.

Put a 24-bit integer, originally in host endianness, to a potentially unaligned memory location in littel-endian format.

Parameters
val24-bit integer in host endianness.
dstDestination memory address to store the result.

◆ sys_put_le32()

static void sys_put_le32 ( uint32_t  val,
uint8_t  dst[4] 
)
inlinestatic

Put a 32-bit integer as little-endian to arbitrary location.

Put a 32-bit integer, originally in host endianness, to a potentially unaligned memory location in little-endian format.

Parameters
val32-bit integer in host endianness.
dstDestination memory address to store the result.

◆ sys_put_le48()

static void sys_put_le48 ( uint64_t  val,
uint8_t  dst[6] 
)
inlinestatic

Put a 48-bit integer as little-endian to arbitrary location.

Put a 48-bit integer, originally in host endianness, to a potentially unaligned memory location in little-endian format.

Parameters
val48-bit integer in host endianness.
dstDestination memory address to store the result.

◆ sys_put_le64()

static void sys_put_le64 ( uint64_t  val,
uint8_t  dst[8] 
)
inlinestatic

Put a 64-bit integer as little-endian to arbitrary location.

Put a 64-bit integer, originally in host endianness, to a potentially unaligned memory location in little-endian format.

Parameters
val64-bit integer in host endianness.
dstDestination memory address to store the result.