LUFA Library  120730
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Byte Reordering

Macros and functions for forced byte reordering. More...

Macros

#define SWAPENDIAN_16(x)   (uint16_t)((((x) & 0xFF00) >> 8) | (((x) & 0x00FF) << 8))
#define SWAPENDIAN_32(x)

Functions

static uint16_t SwapEndian_16 (const uint16_t Word) ATTR_WARN_UNUSED_RESULT ATTR_CONST
static uint32_t SwapEndian_32 (const uint32_t DWord) ATTR_WARN_UNUSED_RESULT ATTR_CONST
static void SwapEndian_n (void *const Data, uint8_t Length) ATTR_NON_NULL_PTR_ARG(1)

Detailed Description

Macro Definition Documentation

#define SWAPENDIAN_16 (   x)    (uint16_t)((((x) & 0xFF00) >> 8) | (((x) & 0x00FF) << 8))

Swaps the byte ordering of a 16-bit value at compile-time. Do not use this macro for swapping byte orderings of dynamic values computed at runtime, use SwapEndian_16() instead. The result of this macro can be used inside struct or other variable initializers outside of a function, something that is not possible with the inline function variant.

Parameters
[in]x16-bit value whose byte ordering is to be swapped.
Returns
Input value with the byte ordering reversed.
#define SWAPENDIAN_32 (   x)
Value:
(uint32_t)((((x) & 0xFF000000UL) >> 24UL) | (((x) & 0x00FF0000UL) >> 8UL) | \
(((x) & 0x0000FF00UL) << 8UL) | (((x) & 0x000000FFUL) << 24UL))

Swaps the byte ordering of a 32-bit value at compile-time. Do not use this macro for swapping byte orderings of dynamic values computed at runtime- use SwapEndian_32() instead. The result of this macro can be used inside struct or other variable initializers outside of a function, something that is not possible with the inline function variant.

Parameters
[in]x32-bit value whose byte ordering is to be swapped.
Returns
Input value with the byte ordering reversed.

Function Documentation

static uint16_t SwapEndian_16 ( const uint16_t  Word)
inlinestatic

Function to reverse the byte ordering of the individual bytes in a 16 bit value.

Parameters
[in]WordWord of data whose bytes are to be swapped.
Returns
Input data with the individual bytes reversed.
static uint32_t SwapEndian_32 ( const uint32_t  DWord)
inlinestatic

Function to reverse the byte ordering of the individual bytes in a 32 bit value.

Parameters
[in]DWordDouble word of data whose bytes are to be swapped.
Returns
Input data with the individual bytes reversed.
static void SwapEndian_n ( void *const  Data,
uint8_t  Length 
)
inlinestatic

Function to reverse the byte ordering of the individual bytes in a n byte value.

Parameters
[in,out]DataPointer to a number containing an even number of bytes to be reversed.
[in]LengthLength of the data in bytes.
Returns
Input data with the individual bytes reversed.