Move endianness helper functions from hash.c over to endianness.h
This commit is contained in:
parent
7c2251a1ba
commit
51b8fac72e
17
endianness.h
17
endianness.h
|
@ -19,6 +19,13 @@
|
|||
|
||||
#include <stdint.h>
|
||||
|
||||
#define SWAP32(x) ((uint32_t)( \
|
||||
(((uint32_t)(x) & 0x000000ff) << 24) | \
|
||||
(((uint32_t)(x) & 0x0000ff00) << 8) | \
|
||||
(((uint32_t)(x) & 0x00ff0000) >> 8) | \
|
||||
(((uint32_t)(x) & 0xff000000) >> 24) \
|
||||
))
|
||||
|
||||
static inline uint8_t is_little_endian(void)
|
||||
{
|
||||
union
|
||||
|
@ -61,4 +68,14 @@ static inline uint16_t swap_if_little16(uint16_t val)
|
|||
return val;
|
||||
}
|
||||
|
||||
static inline void store32be(uint32_t *addr, uint32_t data)
|
||||
{
|
||||
*addr = is_little_endian() ? SWAP32(data) : data;
|
||||
}
|
||||
|
||||
static inline uint32_t load32be(const uint32_t *addr)
|
||||
{
|
||||
return is_little_endian() ? SWAP32(*addr) : *addr;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
18
hash.c
18
hash.c
|
@ -58,23 +58,7 @@
|
|||
#include <stdio.h>
|
||||
#include "hash.h"
|
||||
#include "miscellaneous.h"
|
||||
|
||||
#define SWAP32(x) ((uint32_t)( \
|
||||
(((uint32_t)(x) & 0x000000ff) << 24) | \
|
||||
(((uint32_t)(x) & 0x0000ff00) << 8) | \
|
||||
(((uint32_t)(x) & 0x00ff0000) >> 8) | \
|
||||
(((uint32_t)(x) & 0xff000000) >> 24) \
|
||||
))
|
||||
|
||||
static inline void store32be(uint32_t *addr, uint32_t data)
|
||||
{
|
||||
*addr = is_little_endian() ? SWAP32(data) : data;
|
||||
}
|
||||
|
||||
static inline uint32_t load32be(const uint32_t *addr)
|
||||
{
|
||||
return is_little_endian() ? SWAP32(*addr) : *addr;
|
||||
}
|
||||
#include "endianness.h"
|
||||
|
||||
#define LSL32(x, n) ((uint32_t)(x) << (n))
|
||||
#define LSR32(x, n) ((uint32_t)(x) >> (n))
|
||||
|
|
Loading…
Reference in New Issue