P99
Data Structures | Defines | Typedefs | Enumerations | Functions
Endianess
Macros to handle integer type expressions

Help to handle endianess problems of different kind. More...

+ Collaboration diagram for Endianess:

Data Structures

union  p99_endian_2
union  p99_endian_4
union  p99_endian_8

Defines

#define P99_ENDIANNESS   ((p99_endianness)P99_HTON(4, UINT32_C(0x01020304)))
 Return the platform the endianness in terms of a value of type p99_endianness.
#define P99_HTON(N, X)   (((P99_PASTE2(p99_endian_, N) const)P99_HTON_INITIALIZER(N, X)).p00_i)
 host to network transformation of integers according to the endianness of the platform
#define P99_HTON_INITIALIZER(N, X)   { .p00_c = { P00_HTON(N, X) } }
#define P99_NTOH(N, X)   (P99_PASTE2(p00_uint_byte_, N) const)P00_NTOH(N, X, ((P99_PASTE2(p99_endian_, N) const)P99_NTOH_INITIALIZER(N, X)))
 network to host transformation of integers according to the endianness of the platform
#define P99_NTOH_INITIALIZER(N, X)   { .p00_i = (X) }

Typedefs

typedef union p99_endian_16 p99_endian_16
 an overlay of 16 byte integer and an uint8_array of 16 elements
typedef union p99_endian_2 p99_endian_2
 an overlay of 2 byte integer and an uint8_array of 2 elements
typedef union p99_endian_4 p99_endian_4
 an overlay of 4 byte integer and an uint8_array of 4 elements
typedef union p99_endian_8 p99_endian_8
 an overlay of 8 byte integer and an uint8_array of 8 elements
typedef enum p99_endianness p99_endianness
 Classify platforms according to their endianness.

Enumerations

enum  p99_endianness { p99_big_endian = 0x01020304u, p99_little_endian = 0x04030201u, p99_pdp_endian = 0x02010403u }
 Classify platforms according to their endianness. More...

Functions

char const * p99_endianness_getname (p99_endianness p00_x)
 Get a string with the name of constant p00_x of type :: p99_endianness.

Detailed Description

Help to handle endianess problems of different kind.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines