Move endianness helper functions from hash.c over to endianness.h

This commit is contained in:
twinaphex 2014-10-03 16:22:41 +02:00
parent 7c2251a1ba
commit 51b8fac72e
2 changed files with 18 additions and 17 deletions

View File

@ -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
View File

@ -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))