macros for bits manipulations
More...
#include "mhd_byteorder.h"
#include <stdint.h>
Go to the source code of this file.
macros for bits manipulations
- Author
- Karlson2k (Evgeny Grin)
Definition in file mhd_bithelpers.h.
◆ __has_builtin
#define __has_builtin |
( |
|
x | ) |
0 |
◆ _MHD_BYTES_SWAP32
#define _MHD_BYTES_SWAP32 |
( |
|
value32 | ) |
|
Value: ( (((uint32_t) (value32)) << 24) \
| ((((uint32_t) (value32)) & ((uint32_t) 0x0000FF00)) << 8) \
| ((((uint32_t) (value32)) & ((uint32_t) 0x00FF0000)) >> 8) \
| (((uint32_t) (value32)) >> 24) )
Definition at line 58 of file mhd_bithelpers.h.
◆ _MHD_BYTES_SWAP64
#define _MHD_BYTES_SWAP64 |
( |
|
value64 | ) |
|
Value: ( (((uint64_t) (value64)) << 56) \
| ((((uint64_t) (value64)) & ((uint64_t) 0x000000000000FF00)) << 40) \
| ((((uint64_t) (value64)) & ((uint64_t) 0x0000000000FF0000)) << 24) \
| ((((uint64_t) (value64)) & ((uint64_t) 0x00000000FF000000)) << 8) \
| ((((uint64_t) (value64)) & ((uint64_t) 0x000000FF00000000)) >> 8) \
| ((((uint64_t) (value64)) & ((uint64_t) 0x0000FF0000000000)) >> 24) \
| ((((uint64_t) (value64)) & ((uint64_t) 0x00FF000000000000)) >> 40) \
| (((uint64_t) (value64)) >> 56) )
Definition at line 80 of file mhd_bithelpers.h.
◆ _MHD_GET_32BIT_BE
#define _MHD_GET_32BIT_BE |
( |
|
addr | ) |
|
Value: ( (((uint32_t) (((const uint8_t*) addr)[0])) << 24) \
| (((uint32_t) (((const uint8_t*) addr)[1])) << 16) \
| (((uint32_t) (((const uint8_t*) addr)[2])) << 8) \
| ((uint32_t) (((const uint8_t*) addr)[3])) )
Definition at line 212 of file mhd_bithelpers.h.
◆ _MHD_GET_32BIT_LE
#define _MHD_GET_32BIT_LE |
( |
|
addr | ) |
|
Value: ( ( (uint32_t) (((const uint8_t*) addr)[0])) \
| (((uint32_t) (((const uint8_t*) addr)[1])) << 8) \
| (((uint32_t) (((const uint8_t*) addr)[2])) << 16) \
| (((uint32_t) (((const uint8_t*) addr)[3])) << 24) )
Definition at line 148 of file mhd_bithelpers.h.
◆ _MHD_PUT_32BIT_BE
#define _MHD_PUT_32BIT_BE |
( |
|
addr, |
|
|
|
value32 |
|
) |
| |
Value: do { \
((uint8_t*) (addr))[3] = (uint8_t) ((uint32_t) (value32)); \
((uint8_t*) (addr))[2] = (uint8_t) (((uint32_t) (value32)) >> 8); \
((uint8_t*) (addr))[1] = (uint8_t) (((uint32_t) (value32)) >> 16); \
((uint8_t*) (addr))[0] = (uint8_t) (((uint32_t) (value32)) >> 24); \
} while (0)
Definition at line 192 of file mhd_bithelpers.h.
◆ _MHD_PUT_32BIT_LE
#define _MHD_PUT_32BIT_LE |
( |
|
addr, |
|
|
|
value32 |
|
) |
| |
Value: do { \
((uint8_t*) (addr))[0] = (uint8_t) ((uint32_t) (value32)); \
((uint8_t*) (addr))[1] = (uint8_t) (((uint32_t) (value32)) >> 8); \
((uint8_t*) (addr))[2] = (uint8_t) (((uint32_t) (value32)) >> 16); \
((uint8_t*) (addr))[3] = (uint8_t) (((uint32_t) (value32)) >> 24); \
} while (0)
Definition at line 128 of file mhd_bithelpers.h.
◆ _MHD_PUT_64BIT_BE
#define _MHD_PUT_64BIT_BE |
( |
|
addr, |
|
|
|
value64 |
|
) |
| |
Value: do { \
((uint8_t*) (addr))[7] = (uint8_t) ((uint64_t) (value64)); \
((uint8_t*) (addr))[6] = (uint8_t) (((uint64_t) (value64)) >> 8); \
((uint8_t*) (addr))[5] = (uint8_t) (((uint64_t) (value64)) >> 16); \
((uint8_t*) (addr))[4] = (uint8_t) (((uint64_t) (value64)) >> 24); \
((uint8_t*) (addr))[3] = (uint8_t) (((uint64_t) (value64)) >> 32); \
((uint8_t*) (addr))[2] = (uint8_t) (((uint64_t) (value64)) >> 40); \
((uint8_t*) (addr))[1] = (uint8_t) (((uint64_t) (value64)) >> 48); \
((uint8_t*) (addr))[0] = (uint8_t) (((uint64_t) (value64)) >> 56); \
} while (0)
Definition at line 168 of file mhd_bithelpers.h.
◆ _MHD_PUT_64BIT_LE
#define _MHD_PUT_64BIT_LE |
( |
|
addr, |
|
|
|
value64 |
|
) |
| |
Value: do { \
((uint8_t*) (addr))[0] = (uint8_t) ((uint64_t) (value64)); \
((uint8_t*) (addr))[1] = (uint8_t) (((uint64_t) (value64)) >> 8); \
((uint8_t*) (addr))[2] = (uint8_t) (((uint64_t) (value64)) >> 16); \
((uint8_t*) (addr))[3] = (uint8_t) (((uint64_t) (value64)) >> 24); \
((uint8_t*) (addr))[4] = (uint8_t) (((uint64_t) (value64)) >> 32); \
((uint8_t*) (addr))[5] = (uint8_t) (((uint64_t) (value64)) >> 40); \
((uint8_t*) (addr))[6] = (uint8_t) (((uint64_t) (value64)) >> 48); \
((uint8_t*) (addr))[7] = (uint8_t) (((uint64_t) (value64)) >> 56); \
} while (0)
Definition at line 104 of file mhd_bithelpers.h.
◆ _MHD_ROTR32
#define _MHD_ROTR32 |
( |
|
value32, |
|
|
|
bits |
|
) |
| (((uint32_t) (value32)) >> (bits) | ((uint32_t) (value32)) << (32 - bits)) |
Rotate right 32-bit value by number of bits. bits parameter must be more than zero and must be less than 32.
Definition at line 234 of file mhd_bithelpers.h.