S2OPC OPCUA Toolkit
Loading...
Searching...
No Matches
sopc_helper_endianness_cfg.h File Reference

Evaluates and records the endianness configuration of the current machine. More...

Go to the source code of this file.

Macros

#define SOPC_SWAP_2_BYTES(x)
 
#define SOPC_SWAP_3_BYTES(x)
 
#define SOPC_SWAP_4_BYTES(x)
 
#define SOPC_SWAP_8_BYTES(x)
 
#define SOPC_SWAP_2_DWORDS(x)
 
#define SOPC_TO_LITTLE_ENDIAN_16BITS(iu16)
 
#define SOPC_TO_LITTLE_ENDIAN_32BITS(iu32)
 
#define SOPC_TO_LITTLE_ENDIAN_32BITS(iu64)
 
#define SOPC_TO_LITTLE_ENDIAN_FLOAT(fl32)
 
#define SOPC_TO_LITTLE_ENDIAN_DOUBLE(db64)
 

Functions

void SOPC_Helper_Endianness_Check (void)
 Check that machine endianness configured (:SOPC_IS_LITTLE_ENDIAN and SOPC_IS_DOUBLE_MIDDLE_ENDIAN) matches actual CPU behavior.
 

Detailed Description

Evaluates and records the endianness configuration of the current machine.

Macro Definition Documentation

◆ SOPC_SWAP_2_BYTES

#define SOPC_SWAP_2_BYTES ( x)
Value:
(uint16_t)(((x) & (uint16_t) 0x00FF) << 8 | ((x) & (uint16_t) 0xFF00) >> 8)

SWAP OPERATIONS

◆ SOPC_SWAP_3_BYTES

#define SOPC_SWAP_3_BYTES ( x)
Value:
(((x) &0x0000FF) << 16 | ((x) &0x00FF00) | ((x) &0xFF0000) >> 16)

◆ SOPC_SWAP_4_BYTES

#define SOPC_SWAP_4_BYTES ( x)
Value:
(((x) &0x000000FF) << 24 | ((x) &0x0000FF00) << 8 | ((x) &0xFF000000) >> 24 | ((x) &0x00FF0000) >> 8)

◆ SOPC_SWAP_8_BYTES

#define SOPC_SWAP_8_BYTES ( x)
Value:
(((x) &0x00000000000000FF) << 56 | ((x) &0x000000000000FF00) << 40 | ((x) &0x0000000000FF0000) << 24 | \
((x) &0x00000000FF000000) << 8 | ((x) &0xFF00000000000000) >> 56 | ((x) &0x00FF000000000000) >> 40 | \
((x) &0x0000FF0000000000) >> 24 | ((x) &0x000000FF00000000) >> 8)

◆ SOPC_SWAP_2_DWORDS

#define SOPC_SWAP_2_DWORDS ( x)
Value:
(((x) &0x00000000FFFFFFFF) << 32 | ((x) &0xFFFFFFFF00000000) >> 32)

◆ SOPC_TO_LITTLE_ENDIAN_16BITS

#define SOPC_TO_LITTLE_ENDIAN_16BITS ( iu16)
Value:
(iu16) = SOPC_SWAP_2_BYTES(iu16)
#define SOPC_SWAP_2_BYTES(x)
Definition sopc_helper_endianness_cfg.h:32

Define integer swapping operation to encode Integers in buffer (As little endian)

◆ SOPC_TO_LITTLE_ENDIAN_32BITS [1/2]

#define SOPC_TO_LITTLE_ENDIAN_32BITS ( iu32)
Value:
(iu32) = SOPC_SWAP_4_BYTES(iu32)
#define SOPC_SWAP_4_BYTES(x)
Definition sopc_helper_endianness_cfg.h:34

◆ SOPC_TO_LITTLE_ENDIAN_32BITS [2/2]

#define SOPC_TO_LITTLE_ENDIAN_32BITS ( iu64)
Value:
(iu64) = SOPC_SWAP_8_BYTES(iu64)
#define SOPC_SWAP_8_BYTES(x)
Definition sopc_helper_endianness_cfg.h:36

◆ SOPC_TO_LITTLE_ENDIAN_FLOAT

#define SOPC_TO_LITTLE_ENDIAN_FLOAT ( fl32)
Value:
(fl32) = SOPC_SWAP_4_BYTES(fl32)

◆ SOPC_TO_LITTLE_ENDIAN_DOUBLE

#define SOPC_TO_LITTLE_ENDIAN_DOUBLE ( db64)
Value:
(db64) = SOPC_SWAP_8_BYTES(db64)

Function Documentation

◆ SOPC_Helper_Endianness_Check()

void SOPC_Helper_Endianness_Check ( void )

Check that machine endianness configured (:SOPC_IS_LITTLE_ENDIAN and SOPC_IS_DOUBLE_MIDDLE_ENDIAN) matches actual CPU behavior.