byteorder.h

Functions to work with different byte orders.

_byteorder_swap( V, T)

Swaps the byteorder according to the endianess.

1
(byteorder_swap##T((V)))
be_uint16_t network_uint16_t

A 16 bit integer in network byte order.

be_uint32_t network_uint32_t

A 32 bit integer in network byte order.

be_uint64_t network_uint64_t

A 64 bit integer in network byte order.

be_uint16_t byteorder_ltobs(le_uint16_t v)

Convert from little endian to big endian, 16 bit.

Parameters

v:The integer in little endian.

Return values

  • v converted to big endian.
be_uint32_t byteorder_ltobl(le_uint32_t v)

Convert from little endian to big endian, 32 bit.

Parameters

v:The integer in little endian.

Return values

  • v converted to big endian.
be_uint64_t byteorder_ltobll(le_uint64_t v)

Convert from little endian to big endian, 64 bit.

Parameters

v:The integer in little endian.

Return values

  • v converted to big endian.
le_uint16_t byteorder_btols(be_uint16_t v)

Convert from big endian to little endian, 16 bit.

Parameters

v:The integer in big endian.

Return values

  • v converted to little endian.
le_uint32_t byteorder_btoll(be_uint32_t v)

Convert from big endian to little endian, 32 bit.

Parameters

v:The integer in big endian.

Return values

  • v converted to little endian.
le_uint64_t byteorder_btolll(be_uint64_t v)

Convert from big endian to little endian, 64 bit.

Parameters

v:The integer in big endian.

Return values

  • v converted to little endian.
byteorder.h::network_uint16_t byteorder_htons(uint16_t v)

Convert from host byte order to network byte order, 16 bit.

Parameters

v:The integer in host byte order.

Return values

  • v converted to network byte order.
byteorder.h::network_uint32_t byteorder_htonl(uint32_t v)

Convert from host byte order to network byte order, 32 bit.

Parameters

v:The integer in host byte order.

Return values

  • v converted to network byte order.
byteorder.h::network_uint64_t byteorder_htonll(uint64_t v)

Convert from host byte order to network byte order, 64 bit.

Parameters

v:The integer in host byte order.

Return values

  • v converted to network byte order.
uint16_t byteorder_ntohs(byteorder.h::network_uint16_t v)

Convert from network byte order to host byte order, 16 bit.

Parameters

v:The integer in network byte order.

Return values

  • v converted to host byte order.
uint32_t byteorder_ntohl(byteorder.h::network_uint32_t v)

Convert from network byte order to host byte order, 32 bit.

Parameters

v:The integer in network byte order.

Return values

  • v converted to host byte order.
uint64_t byteorder_ntohll(byteorder.h::network_uint64_t v)

Convert from network byte order to host byte order, 64 bit.

Parameters

v:The integer in network byte order.

Return values

  • v converted to host byte order.
uint16_t byteorder_swaps(uint16_t v)

Swap byte order, 16 bit.

Parameters

v:The integer to swap.

Return values

  • The swapped integer.
uint32_t byteorder_swapl(uint32_t v)

Swap byte order, 32 bit.

Parameters

v:The integer to swap.

Return values

  • The swapped integer.
uint64_t byteorder_swapll(uint64_t v)

Swap byte order, 64 bit.

Parameters

v:The integer to swap.

Return values

  • The swapped integer.
uint16_t byteorder_bebuftohs(const uint8_t * buf)

Read a big endian encoded unsigned integer from a buffer into host byte order encoded variable, 16-bit.

Note

This function is agnostic to the alignment of the target value in the given buffer

Parameters

buf:position in a buffer holding the target value

Return values

  • 16-bit unsigned integer in host byte order
void byteorder_htobebufs(uint8_t * buf, uint16_t val)

Write a host byte order encoded unsigned integer as big endian encoded value into a buffer, 16-bit.

Note

This function is alignment agnostic and works with any given memory location of the buffer

Parameters

buf:target buffer, must be able to accept 2 bytes
val:value written to the buffer, in host byte order

uint16_t htons(uint16_t v)

Convert from host byte order to network byte order, 16 bit.

Parameters

v:The integer to convert.

Return values

  • Converted integer.
uint32_t htonl(uint32_t v)

Convert from host byte order to network byte order, 32 bit.

Parameters

v:The integer to convert.

Return values

  • Converted integer.
uint64_t htonll(uint64_t v)

Convert from host byte order to network byte order, 64 bit.

Parameters

v:The integer to convert.

Return values

  • Converted integer.
uint16_t ntohs(uint16_t v)

Convert from network byte order to host byte order, 16 bit.

Parameters

v:The integer to convert.

Return values

  • Converted integer.
uint32_t ntohl(uint32_t v)

Convert from network byte order to host byte order, 32 bit.

Parameters

v:The integer to convert.

Return values

  • Converted integer.
uint64_t ntohll(uint64_t v)

Convert from network byte order to host byte order, 64 bit.

Parameters

v:The integer to convert.

Return values

  • Converted integer.
union le_uint16_t

A 16 bit integer in little endian.

This is a wrapper around an uint16_t to catch missing conversions between different byte orders at compile time.

union le_uint32_t

A 32 bit integer in little endian.

This is a wrapper around an uint32_t to catch missing conversions between different byte orders at compile time.

union le_uint64_t

A 64 bit integer in little endian.

This is a wrapper around an uint64_t to catch missing conversions between different byte orders at compile time.

union be_uint16_t

A 16 bit integer in big endian aka network byte order.

This is a wrapper around an uint16_t to catch missing conversions between different byte orders at compile time.

union be_uint32_t

A 32 bit integer in big endian aka network byte order.

This is a wrapper around an uint32_t to catch missing conversions between different byte orders at compile time.

union be_uint64_t

A 64 bit integer in big endian aka network byte order.

This is a wrapper around an uint64_t to catch missing conversions between different byte orders at compile time.