Adaptive Framework  0.9.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Files | Data Structures | Macros | Functions

Files

file  afw_endian.h
 Adaptive Framework Endian Header.
 

Data Structures

union  afw_endian_big_uint64_t
 64-bit unsigned big endian integer. More...
 
union  afw_endian_little_uint64_t
 64-bit unsigned little endian integer. More...
 
union  afw_endian_big_int64_t
 64-bit signed big endian integer. More...
 
union  afw_endian_little_int64_t
 64-bit signed little endian integer. More...
 
union  afw_endian_big_uint32_t
 32-bit unsigned big endian integer. More...
 
union  afw_endian_little_uint32_t
 32-bit unsigned little endian integer.
More...
 
union  afw_endian_big_int32_t
 32-bit signed big endian integer. More...
 
union  afw_endian_little_int32_t
 32-bit signed little endian integer. More...
 
union  afw_endian_big_uint16_t
 16-bit unsigned big endian integer. More...
 
union  afw_endian_little_uint16_t
 16-bit unsigned little endian integer. More...
 
union  afw_endian_big_int16_t
 16-bit signed big endian integer. More...
 
union  afw_endian_little_int16_t
 16-bit signed little endian integer. More...
 

Macros

#define AFW_ENDIAN_IS_BIG   APR_IS_BIGENDIAN
 
#define AFW_ENDIAN_SWAP(_X_, _Y_)
 
#define AFW_ENDIAN_SWITCH_64(_N_)
 
#define AFW_ENDIAN_SWITCH_32(_N_)
 
#define AFW_ENDIAN_SWITCH_16(_N_)    AFW_ENDIAN_SWAP(((unsigned char *)(_N_))[0], ((unsigned char *)(_N_))[1]); \
 
#define AFW_ENDIAN_IS_LITTLE   1
 
#define AFW_ENDIAN_NATIVE_TO_LITTLE_64(_N_)
 
#define AFW_ENDIAN_LITTLE_TO_NATIVE_64(_N_)
 
#define AFW_ENDIAN_NATIVE_TO_LITTLE_32(_N_)
 
#define AFW_ENDIAN_LITTLE_TO_NATIVE_32(_N_)
 
#define AFW_ENDIAN_NATIVE_TO_LITTLE_16(_N_)
 
#define AFW_ENDIAN_LITTLE_TO_NATIVE_16(_N_)
 
#define AFW_ENDIAN_NATIVE_TO_BIG_64(_N_)   AFW_ENDIAN_SWITCH_64(_N_)
 
#define AFW_ENDIAN_BIG_TO_NATIVE_64(_N_)   AFW_ENDIAN_SWITCH_64(_N_)
 
#define AFW_ENDIAN_NATIVE_TO_BIG_32(_N_)   AFW_ENDIAN_SWITCH_32(_N_)
 
#define AFW_ENDIAN_BIG_TO_NATIVE_32(_N_)   AFW_ENDIAN_SWITCH_32(_N_)
 
#define AFW_ENDIAN_NATIVE_TO_BIG_16(_N_)   AFW_ENDIAN_SWITCH_16(_N_)
 
#define AFW_ENDIAN_BIG_TO_NATIVE_16(_N_)   AFW_ENDIAN_SWITCH_16(_N_)
 
#define AFW_ENDIAN_NATIVE_TO_BIG(_N_, _BITS_)   AFW_ENDIAN_NATIVE_TO_BIG_ ## _BITS_(_N_)
 
#define AFW_ENDIAN_BIG_TO_NATIVE(_N_, _BITS_)   AFW_ENDIAN_BIG_TO_NATIVE_ ## _BITS_(_N_)
 
#define AFW_ENDIAN_INCREMENT_BIG_64(_N_)
 
#define AFW_ENDIAN_INCREMENT_BIG_32(_N_)
 
#define AFW_ENDIAN_INCREMENT_BIG_16(_N_)
 

Functions

afw_size_t afw_endian_safe_big_uint64_to_native_size_t (afw_endian_big_uint64_t big, afw_xctx_t *xctx)
 Safe afw_endian_big_uint64_t to native afw_size_t. More...
 
afw_uint64_t afw_endian_big_to_native_uint64 (afw_endian_big_uint64_t big)
 afw_endian_big_uint64_t to native afw_uint64_t More...
 
afw_int64_t afw_endian_big_to_native_int64 (afw_endian_big_int64_t big)
 afw_endian_big_int64_t to native afw_int64_t More...
 
afw_endian_big_uint64_t afw_endian_native_to_big_uint64 (afw_uint64_t native)
 native afw_uint64_t to afw_endian_big_uint64_t More...
 
afw_endian_big_int64_t afw_endian_native_to_big_int64 (afw_int64_t native)
 native afw_int64_t to afw_endian_big_int64_t More...
 
afw_uint32_t afw_endian_big_to_native_uint32 (afw_endian_big_uint32_t big)
 afw_endian_big_uint32_t to native afw_uint32_t More...
 
afw_int32_t afw_endian_big_to_native_int32 (afw_endian_big_int32_t big)
 afw_endian_big_int32_t to native afw_int32_t More...
 
afw_endian_big_uint32_t afw_endian_native_to_big_uint32 (afw_uint32_t native)
 native afw_uint32_t to afw_endian_big_uint32_t More...
 
afw_endian_big_int32_t afw_endian_native_to_big_int32 (afw_int32_t native)
 native afw_int32_t to afw_endian_big_int32_t More...
 
afw_uint16_t afw_endian_big_to_native_uint16 (afw_endian_big_uint16_t big)
 afw_endian_big_uint16_t to native afw_uint16_t More...
 
afw_int16_t afw_endian_big_to_native_int16 (afw_endian_big_int16_t big)
 afw_endian_big_int16_t to native afw_int16_t More...
 
afw_endian_big_uint16_t afw_endian_native_to_big_uint16 (afw_uint16_t native)
 native afw_uint16_t to afw_endian_big_uint16_t More...
 
afw_endian_big_int16_t afw_endian_native_to_big_int16 (afw_int16_t native)
 native afw_int16_t to afw_endian_big_int16_t More...
 
afw_size_t afw_endian_safe_little_uint64_to_native_size_t (afw_endian_little_uint64_t little, afw_xctx_t *xctx)
 Safe afw_endian_little_uint64_t to native afw_size_t. More...
 
afw_uint64_t afw_endian_little_to_native_uint64 (afw_endian_little_uint64_t little)
 afw_endian_little_uint64_t to native afw_uint64_t More...
 
afw_int64_t afw_endian_little_to_native_int64 (afw_endian_little_int64_t little)
 afw_endian_little_int64_t to native afw_int64_t More...
 
afw_endian_little_uint64_t afw_endian_native_to_little_uint64 (afw_uint64_t native)
 native afw_uint64_t to afw_endian_little_uint64_t More...
 
afw_endian_little_int64_t afw_endian_native_to_little_int64 (afw_int64_t native)
 native afw_int64_t to afw_endian_little_int64_t More...
 
afw_uint32_t afw_endian_little_to_native_uint32 (afw_endian_little_uint32_t little)
 afw_endian_little_uint32_t to native afw_uint32_t More...
 
afw_int32_t afw_endian_little_to_native_int32 (afw_endian_little_int32_t little)
 afw_endian_little_int32_t to native afw_int32_t More...
 
afw_endian_little_uint32_t afw_endian_native_to_little_uint32 (afw_uint32_t native)
 native afw_uint32_t to afw_endian_little_uint32_t More...
 
afw_endian_little_int32_t afw_endian_native_to_little_int32 (afw_int32_t native)
 native afw_int32_t to afw_endian_little_int32_t More...
 
afw_uint16_t afw_endian_little_to_native_uint16 (afw_endian_little_uint16_t little)
 afw_endian_little_uint16_t to native afw_uint16_t More...
 
afw_int16_t afw_endian_little_to_native_int16 (afw_endian_little_int16_t little)
 afw_endian_little_int16_t to native afw_int16_t More...
 
afw_endian_little_uint16_t afw_endian_native_to_little_uint16 (afw_uint16_t native)
 native afw_uint16_t to afw_endian_little_uint16_t More...
 
afw_endian_little_int16_t afw_endian_native_to_little_int16 (afw_int16_t native)
 native afw_int16_t to afw_endian_little_int16_t More...
 

Detailed Description

Various defines and structs for endian support.

Macro Definition Documentation

◆ AFW_ENDIAN_INCREMENT_BIG_16

#define AFW_ENDIAN_INCREMENT_BIG_16 (   _N_)
Value:
AFW_ENDIAN_BIG_TO_NATIVE_16(_N_); \
(_N_)++; \
AFW_ENDIAN_NATIVE_TO_BIG_16(_N_)

Definition at line 97 of file afw_endian.h.

◆ AFW_ENDIAN_INCREMENT_BIG_32

#define AFW_ENDIAN_INCREMENT_BIG_32 (   _N_)
Value:
AFW_ENDIAN_BIG_TO_NATIVE_32(_N_); \
(_N_)++; \
AFW_ENDIAN_NATIVE_TO_BIG_32(_N_)

Definition at line 92 of file afw_endian.h.

◆ AFW_ENDIAN_INCREMENT_BIG_64

#define AFW_ENDIAN_INCREMENT_BIG_64 (   _N_)
Value:
AFW_ENDIAN_BIG_TO_NATIVE_64(_N_); \
(_N_)++; \
AFW_ENDIAN_NATIVE_TO_BIG_64(_N_)

Definition at line 87 of file afw_endian.h.

◆ AFW_ENDIAN_IS_LITTLE

#define AFW_ENDIAN_IS_LITTLE   1

Macros for endian.

Definition at line 69 of file afw_endian.h.

◆ AFW_ENDIAN_SWAP

#define AFW_ENDIAN_SWAP (   _X_,
  _Y_ 
)
Value:
_X_ ^= _Y_; \
_Y_ ^= _X_; \
_X_ ^= _Y_

Definition at line 31 of file afw_endian.h.

◆ AFW_ENDIAN_SWITCH_16

#define AFW_ENDIAN_SWITCH_16 (   _N_)     AFW_ENDIAN_SWAP(((unsigned char *)(_N_))[0], ((unsigned char *)(_N_))[1]); \

Swap ENDIAN of 2 byte unsigned.

Definition at line 49 of file afw_endian.h.

◆ AFW_ENDIAN_SWITCH_32

#define AFW_ENDIAN_SWITCH_32 (   _N_)
Value:
AFW_ENDIAN_SWAP(((unsigned char *)(_N_))[0], ((unsigned char *)(_N_))[3]); \
AFW_ENDIAN_SWAP(((unsigned char *)(_N_))[1], ((unsigned char *)(_N_))[2]); \

Swap ENDIAN of 4 byte unsigned.

Definition at line 44 of file afw_endian.h.

◆ AFW_ENDIAN_SWITCH_64

#define AFW_ENDIAN_SWITCH_64 (   _N_)
Value:
AFW_ENDIAN_SWAP(((unsigned char *)(_N_))[0], ((unsigned char *)(_N_))[7]); \
AFW_ENDIAN_SWAP(((unsigned char *)(_N_))[1], ((unsigned char *)(_N_))[6]); \
AFW_ENDIAN_SWAP(((unsigned char *)(_N_))[2], ((unsigned char *)(_N_))[5]); \
AFW_ENDIAN_SWAP(((unsigned char *)(_N_))[3], ((unsigned char *)(_N_))[4]); \

Swap ENDIAN of 8 byte unsigned.

Definition at line 37 of file afw_endian.h.

Function Documentation

◆ afw_endian_big_to_native_int16()

afw_int16_t afw_endian_big_to_native_int16 ( afw_endian_big_int16_t  big)

afw_endian_big_int16_t to native afw_int16_t

Parameters
bigafw_endian_big_uint16_t
Returns
native afw_uint16_t

Definition at line 336 of file afw_endian.h.

◆ afw_endian_big_to_native_int32()

afw_int32_t afw_endian_big_to_native_int32 ( afw_endian_big_int32_t  big)

afw_endian_big_int32_t to native afw_int32_t

Parameters
bigafw_endian_big_uint32_t
Returns
native afw_uint32_t

Definition at line 278 of file afw_endian.h.

◆ afw_endian_big_to_native_int64()

afw_int64_t afw_endian_big_to_native_int64 ( afw_endian_big_int64_t  big)

afw_endian_big_int64_t to native afw_int64_t

Parameters
bigafw_endian_big_uint64_t
Returns
native afw_uint64_t

Definition at line 220 of file afw_endian.h.

◆ afw_endian_big_to_native_uint16()

afw_uint16_t afw_endian_big_to_native_uint16 ( afw_endian_big_uint16_t  big)

afw_endian_big_uint16_t to native afw_uint16_t

Parameters
bigafw_endian_big_uint16_t
Returns
native afw_uint16_t

Definition at line 322 of file afw_endian.h.

◆ afw_endian_big_to_native_uint32()

afw_uint32_t afw_endian_big_to_native_uint32 ( afw_endian_big_uint32_t  big)

afw_endian_big_uint32_t to native afw_uint32_t

Parameters
bigafw_endian_big_uint32_t
Returns
native afw_uint32_t

Definition at line 264 of file afw_endian.h.

◆ afw_endian_big_to_native_uint64()

afw_uint64_t afw_endian_big_to_native_uint64 ( afw_endian_big_uint64_t  big)

afw_endian_big_uint64_t to native afw_uint64_t

Parameters
bigafw_endian_big_uint64_t
Returns
native afw_uint64_t

Definition at line 206 of file afw_endian.h.

◆ afw_endian_little_to_native_int16()

afw_int16_t afw_endian_little_to_native_int16 ( afw_endian_little_int16_t  little)

afw_endian_little_int16_t to native afw_int16_t

Parameters
littleafw_endian_little_uint16_t
Returns
native afw_uint16_t

Definition at line 536 of file afw_endian.h.

◆ afw_endian_little_to_native_int32()

afw_int32_t afw_endian_little_to_native_int32 ( afw_endian_little_int32_t  little)

afw_endian_little_int32_t to native afw_int32_t

Parameters
littleafw_endian_little_uint32_t
Returns
native afw_uint32_t

Definition at line 478 of file afw_endian.h.

◆ afw_endian_little_to_native_int64()

afw_int64_t afw_endian_little_to_native_int64 ( afw_endian_little_int64_t  little)

afw_endian_little_int64_t to native afw_int64_t

Parameters
littleafw_endian_little_uint64_t
Returns
native afw_uint64_t

Definition at line 420 of file afw_endian.h.

◆ afw_endian_little_to_native_uint16()

afw_uint16_t afw_endian_little_to_native_uint16 ( afw_endian_little_uint16_t  little)

afw_endian_little_uint16_t to native afw_uint16_t

Parameters
littleafw_endian_little_uint16_t
Returns
native afw_uint16_t

Definition at line 522 of file afw_endian.h.

◆ afw_endian_little_to_native_uint32()

afw_uint32_t afw_endian_little_to_native_uint32 ( afw_endian_little_uint32_t  little)

afw_endian_little_uint32_t to native afw_uint32_t

Parameters
littleafw_endian_little_uint32_t
Returns
native afw_uint32_t

Definition at line 464 of file afw_endian.h.

◆ afw_endian_little_to_native_uint64()

afw_uint64_t afw_endian_little_to_native_uint64 ( afw_endian_little_uint64_t  little)

afw_endian_little_uint64_t to native afw_uint64_t

Parameters
littleafw_endian_little_uint64_t
Returns
native afw_uint64_t

Definition at line 406 of file afw_endian.h.

◆ afw_endian_native_to_big_int16()

afw_endian_big_int16_t afw_endian_native_to_big_int16 ( afw_int16_t  native)

native afw_int16_t to afw_endian_big_int16_t

Parameters
nativeafw_int16_t
Returns
afw_endian_big_int16_t

Definition at line 365 of file afw_endian.h.

◆ afw_endian_native_to_big_int32()

afw_endian_big_int32_t afw_endian_native_to_big_int32 ( afw_int32_t  native)

native afw_int32_t to afw_endian_big_int32_t

Parameters
nativeafw_int32_t
Returns
afw_endian_big_int32_t

Definition at line 307 of file afw_endian.h.

◆ afw_endian_native_to_big_int64()

afw_endian_big_int64_t afw_endian_native_to_big_int64 ( afw_int64_t  native)

native afw_int64_t to afw_endian_big_int64_t

Parameters
nativeafw_int64_t
Returns
afw_endian_big_int64_t

Definition at line 249 of file afw_endian.h.

◆ afw_endian_native_to_big_uint16()

afw_endian_big_uint16_t afw_endian_native_to_big_uint16 ( afw_uint16_t  native)

native afw_uint16_t to afw_endian_big_uint16_t

Parameters
nativeafw_uint16_t
Returns
afw_endian_big_uint16_t

Definition at line 350 of file afw_endian.h.

◆ afw_endian_native_to_big_uint32()

afw_endian_big_uint32_t afw_endian_native_to_big_uint32 ( afw_uint32_t  native)

native afw_uint32_t to afw_endian_big_uint32_t

Parameters
nativeafw_uint32_t
Returns
afw_endian_big_uint32_t

Definition at line 292 of file afw_endian.h.

◆ afw_endian_native_to_big_uint64()

afw_endian_big_uint64_t afw_endian_native_to_big_uint64 ( afw_uint64_t  native)

native afw_uint64_t to afw_endian_big_uint64_t

Parameters
nativeafw_uint64_t
Returns
afw_endian_big_uint64_t

Definition at line 234 of file afw_endian.h.

◆ afw_endian_native_to_little_int16()

afw_endian_little_int16_t afw_endian_native_to_little_int16 ( afw_int16_t  native)

native afw_int16_t to afw_endian_little_int16_t

Parameters
nativeafw_int16_t
Returns
afw_endian_little_int16_t

Definition at line 565 of file afw_endian.h.

◆ afw_endian_native_to_little_int32()

afw_endian_little_int32_t afw_endian_native_to_little_int32 ( afw_int32_t  native)

native afw_int32_t to afw_endian_little_int32_t

Parameters
nativeafw_int32_t
Returns
afw_endian_little_int32_t

Definition at line 507 of file afw_endian.h.

◆ afw_endian_native_to_little_int64()

afw_endian_little_int64_t afw_endian_native_to_little_int64 ( afw_int64_t  native)

native afw_int64_t to afw_endian_little_int64_t

Parameters
nativeafw_int64_t
Returns
afw_endian_little_int64_t

Definition at line 449 of file afw_endian.h.

◆ afw_endian_native_to_little_uint16()

afw_endian_little_uint16_t afw_endian_native_to_little_uint16 ( afw_uint16_t  native)

native afw_uint16_t to afw_endian_little_uint16_t

Parameters
nativeafw_uint16_t
Returns
afw_endian_little_uint16_t

Definition at line 550 of file afw_endian.h.

◆ afw_endian_native_to_little_uint32()

afw_endian_little_uint32_t afw_endian_native_to_little_uint32 ( afw_uint32_t  native)

native afw_uint32_t to afw_endian_little_uint32_t

Parameters
nativeafw_uint32_t
Returns
afw_endian_little_uint32_t

Definition at line 492 of file afw_endian.h.

◆ afw_endian_native_to_little_uint64()

afw_endian_little_uint64_t afw_endian_native_to_little_uint64 ( afw_uint64_t  native)

native afw_uint64_t to afw_endian_little_uint64_t

Parameters
nativeafw_uint64_t
Returns
afw_endian_little_uint64_t

Definition at line 434 of file afw_endian.h.

◆ afw_endian_safe_big_uint64_to_native_size_t()

afw_size_t afw_endian_safe_big_uint64_to_native_size_t ( afw_endian_big_uint64_t  big,
afw_xctx_t xctx 
)

Safe afw_endian_big_uint64_t to native afw_size_t.

Parameters
bigafw_endian_big_uint64_t
Returns
native afw_size_t

afw_endian_big_uint64_t may be larger than afw_size_t. An error will be thrown if the value in big exceeds the value that will fit in afw_size_t.

Definition at line 183 of file afw_endian.h.

◆ afw_endian_safe_little_uint64_to_native_size_t()

afw_size_t afw_endian_safe_little_uint64_to_native_size_t ( afw_endian_little_uint64_t  little,
afw_xctx_t xctx 
)

Safe afw_endian_little_uint64_t to native afw_size_t.

Parameters
littleafw_endian_little_uint64_t
Returns
native afw_size_t

afw_endian_little_uint64_t may be larger than afw_size_t. An error will be thrown if the value in little exceeds the value that will fit in afw_size_t.

Definition at line 383 of file afw_endian.h.