LUFA Library  120219
Endianness Conversion

Macros and functions for automatic endianness conversion.

Run-time endianness conversion

#define le16_to_cpu(x)   (x)
#define le32_to_cpu(x)   (x)
#define be16_to_cpu(x)   SwapEndian_16(x)
#define be32_to_cpu(x)   SwapEndian_32(x)
#define cpu_to_le16(x)   (x)
#define cpu_to_le32(x)   (x)
#define cpu_to_be16(x)   SwapEndian_16(x)
#define cpu_to_be32(x)   SwapEndian_32(x)

Compile-time endianness conversion

#define LE16_TO_CPU(x)   (x)
#define LE32_TO_CPU(x)   (x)
#define BE16_TO_CPU(x)   SWAPENDIAN_16(x)
#define BE32_TO_CPU(x)   SWAPENDIAN_32(x)
#define CPU_TO_LE16(x)   (x)
#define CPU_TO_LE32(x)   (x)
#define CPU_TO_BE16(x)   SWAPENDIAN_16(x)
#define CPU_TO_BE32(x)   SWAPENDIAN_32(x)

Define Documentation

#define be16_to_cpu (   x)    SwapEndian_16(x)

Performs a conversion between a Big Endian encoded 16-bit piece of data and the Endianness of the currently selected CPU architecture.

On big endian architectures, this macro does nothing.

Note:
This macro is designed for run-time conversion of data - for compile-time endianness conversion, use BE16_TO_CPU instead.
Parameters:
[in]xData to perform the endianness conversion on.
Returns:
Endian corrected version of the input value.
#define BE16_TO_CPU (   x)    SWAPENDIAN_16(x)

Performs a conversion between a Big Endian encoded 16-bit piece of data and the Endianness of the currently selected CPU architecture.

On big endian architectures, this macro does nothing.

Note:
This macro is designed for compile-time conversion of data - for run-time endianness conversion, use be16_to_cpu instead.
Parameters:
[in]xData to perform the endianness conversion on.
Returns:
Endian corrected version of the input value.
#define be32_to_cpu (   x)    SwapEndian_32(x)

Performs a conversion between a Big Endian encoded 32-bit piece of data and the Endianness of the currently selected CPU architecture.

On big endian architectures, this macro does nothing.

Note:
This macro is designed for run-time conversion of data - for compile-time endianness conversion, use BE32_TO_CPU instead.
Parameters:
[in]xData to perform the endianness conversion on.
Returns:
Endian corrected version of the input value.
#define BE32_TO_CPU (   x)    SWAPENDIAN_32(x)

Performs a conversion between a Big Endian encoded 32-bit piece of data and the Endianness of the currently selected CPU architecture.

On big endian architectures, this macro does nothing.

Note:
This macro is designed for compile-time conversion of data - for run-time endianness conversion, use be32_to_cpu instead.
Parameters:
[in]xData to perform the endianness conversion on.
Returns:
Endian corrected version of the input value.
#define cpu_to_be16 (   x)    SwapEndian_16(x)

Performs a conversion on a natively encoded 16-bit piece of data to ensure that it is in Big Endian format regardless of the currently selected CPU architecture.

On big endian architectures, this macro does nothing.

Note:
This macro is designed for run-time conversion of data - for compile-time endianness conversion, use CPU_TO_BE16 instead.
Parameters:
[in]xData to perform the endianness conversion on.
Returns:
Endian corrected version of the input value.
#define CPU_TO_BE16 (   x)    SWAPENDIAN_16(x)

Performs a conversion on a natively encoded 16-bit piece of data to ensure that it is in Big Endian format regardless of the currently selected CPU architecture.

On big endian architectures, this macro does nothing.

Note:
This macro is designed for compile-time conversion of data - for run-time endianness conversion, use cpu_to_be16 instead.
Parameters:
[in]xData to perform the endianness conversion on.
Returns:
Endian corrected version of the input value.
#define cpu_to_be32 (   x)    SwapEndian_32(x)

Performs a conversion on a natively encoded 32-bit piece of data to ensure that it is in Big Endian format regardless of the currently selected CPU architecture.

On big endian architectures, this macro does nothing.

Note:
This macro is designed for run-time conversion of data - for compile-time endianness conversion, use CPU_TO_BE32 instead.
Parameters:
[in]xData to perform the endianness conversion on.
Returns:
Endian corrected version of the input value.
#define CPU_TO_BE32 (   x)    SWAPENDIAN_32(x)

Performs a conversion on a natively encoded 32-bit piece of data to ensure that it is in Big Endian format regardless of the currently selected CPU architecture.

On big endian architectures, this macro does nothing.

Note:
This macro is designed for compile-time conversion of data - for run-time endianness conversion, use cpu_to_be32 instead.
Parameters:
[in]xData to perform the endianness conversion on.
Returns:
Endian corrected version of the input value.
#define cpu_to_le16 (   x)    (x)

Performs a conversion on a natively encoded 16-bit piece of data to ensure that it is in Little Endian format regardless of the currently selected CPU architecture.

On little endian architectures, this macro does nothing.

Note:
This macro is designed for run-time conversion of data - for compile-time endianness conversion, use CPU_TO_LE16 instead.
Parameters:
[in]xData to perform the endianness conversion on.
Returns:
Endian corrected version of the input value.
#define CPU_TO_LE16 (   x)    (x)

Performs a conversion on a natively encoded 16-bit piece of data to ensure that it is in Little Endian format regardless of the currently selected CPU architecture.

On little endian architectures, this macro does nothing.

Note:
This macro is designed for compile-time conversion of data - for run-time endianness conversion, use cpu_to_le16 instead.
Parameters:
[in]xData to perform the endianness conversion on.
Returns:
Endian corrected version of the input value.
#define cpu_to_le32 (   x)    (x)

Performs a conversion on a natively encoded 32-bit piece of data to ensure that it is in Little Endian format regardless of the currently selected CPU architecture.

On little endian architectures, this macro does nothing.

Note:
This macro is designed for run-time conversion of data - for compile-time endianness conversion, use CPU_TO_LE32 instead.
Parameters:
[in]xData to perform the endianness conversion on.
Returns:
Endian corrected version of the input value.
#define CPU_TO_LE32 (   x)    (x)

Performs a conversion on a natively encoded 32-bit piece of data to ensure that it is in Little Endian format regardless of the currently selected CPU architecture.

On little endian architectures, this macro does nothing.

Note:
This macro is designed for compile-time conversion of data - for run-time endianness conversion, use cpu_to_le32 instead.
Parameters:
[in]xData to perform the endianness conversion on.
Returns:
Endian corrected version of the input value.
#define le16_to_cpu (   x)    (x)

Performs a conversion between a Little Endian encoded 16-bit piece of data and the Endianness of the currently selected CPU architecture.

On little endian architectures, this macro does nothing.

Note:
This macro is designed for run-time conversion of data - for compile-time endianness conversion, use LE16_TO_CPU instead.
Parameters:
[in]xData to perform the endianness conversion on.
Returns:
Endian corrected version of the input value.
#define LE16_TO_CPU (   x)    (x)

Performs a conversion between a Little Endian encoded 16-bit piece of data and the Endianness of the currently selected CPU architecture.

On little endian architectures, this macro does nothing.

Note:
This macro is designed for compile-time conversion of data - for run time endianness conversion, use le16_to_cpu instead.
Parameters:
[in]xData to perform the endianness conversion on.
Returns:
Endian corrected version of the input value.
#define le32_to_cpu (   x)    (x)

Performs a conversion between a Little Endian encoded 32-bit piece of data and the Endianness of the currently selected CPU architecture.

On little endian architectures, this macro does nothing.

Note:
This macro is designed for run-time conversion of data - for compile-time endianness conversion, use LE32_TO_CPU instead.
Parameters:
[in]xData to perform the endianness conversion on.
Returns:
Endian corrected version of the input value.
#define LE32_TO_CPU (   x)    (x)

Performs a conversion between a Little Endian encoded 32-bit piece of data and the Endianness of the currently selected CPU architecture.

On little endian architectures, this macro does nothing.

Note:
This macro is designed for compile-time conversion of data - for run time endianness conversion, use le32_to_cpu instead.
Parameters:
[in]xData to perform the endianness conversion on.
Returns:
Endian corrected version of the input value.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines