1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
#include <stdint.h>
#include "define.h"
static inline void bswap8(unsigned char *input)
{
if (IS_BIG_ENDIAN)
return;
unsigned char tmp;
tmp = input[0];
input[0] = input[7];
input[7] = tmp;
tmp = input[1];
input[1] = input[6];
input[6] = tmp;
tmp = input[2];
input[2] = input[5];
input[5] = tmp;
tmp = input[3];
input[3] = input[4];
input[4] = tmp;
}
static inline void bswap4(unsigned char *input)
{
if (IS_BIG_ENDIAN)
return;
uint32_t *the_num= (uint32_t*)input;
*the_num= ntohl(*the_num);
}
static inline void bswap2(unsigned char *input)
{
if (IS_BIG_ENDIAN)
return;
uint16_t *the_num= (uint16_t*)input;
*the_num= ntohs(*the_num);
}
|