mirror of
https://github.com/Wind4/vlmcsd.git
synced 2025-05-23 19:26:52 -04:00
vlmcsd-svn812-2015-08-30-Hotbird64
This commit is contained in:
commit
1af203d2a8
133 changed files with 102338 additions and 0 deletions
171
endian.c
Normal file
171
endian.c
Normal file
|
@ -0,0 +1,171 @@
|
|||
#ifndef CONFIG
|
||||
#define CONFIG "config.h"
|
||||
#endif // CONFIG
|
||||
#include CONFIG
|
||||
|
||||
#include "endian.h"
|
||||
|
||||
#if defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN) \
|
||||
&& defined(BS16) && defined(BS32) && defined(BS64)
|
||||
|
||||
#else // ! defined(__BYTE_ORDER)
|
||||
|
||||
void PUT_UAA64BE(void *p, unsigned long long v, unsigned int i)
|
||||
{
|
||||
unsigned char *_p = (unsigned char *)&((unsigned long long *)p)[i];
|
||||
_p[ 0 ] = v >> 56;
|
||||
_p[ 1 ] = v >> 48;
|
||||
_p[ 2 ] = v >> 40;
|
||||
_p[ 3 ] = v >> 32;
|
||||
_p[ 4 ] = v >> 24;
|
||||
_p[ 5 ] = v >> 16;
|
||||
_p[ 6 ] = v >> 8;
|
||||
_p[ 7 ] = v;
|
||||
}
|
||||
|
||||
void PUT_UAA32BE(void *p, unsigned int v, unsigned int i)
|
||||
{
|
||||
unsigned char *_p = (unsigned char *)&((unsigned int *)p)[i];
|
||||
_p[ 0 ] = v >> 24;
|
||||
_p[ 1 ] = v >> 16;
|
||||
_p[ 2 ] = v >> 8;
|
||||
_p[ 3 ] = v;
|
||||
}
|
||||
|
||||
void PUT_UAA16BE(void *p, unsigned short v, unsigned int i)
|
||||
{
|
||||
unsigned char *_p = (unsigned char *)&((unsigned short *)p)[i];
|
||||
_p[ 0 ] = v >> 8;
|
||||
_p[ 1 ] = v;
|
||||
}
|
||||
|
||||
|
||||
void PUT_UAA64LE(void *p, unsigned long long v, unsigned int i)
|
||||
{
|
||||
unsigned char *_p = (unsigned char *)&((unsigned long long *)p)[i];
|
||||
_p[ 0 ] = v;
|
||||
_p[ 1 ] = v >> 8;
|
||||
_p[ 2 ] = v >> 16;
|
||||
_p[ 3 ] = v >> 24;
|
||||
_p[ 4 ] = v >> 32;
|
||||
_p[ 5 ] = v >> 40;
|
||||
_p[ 6 ] = v >> 48;
|
||||
_p[ 7 ] = v >> 56;
|
||||
}
|
||||
|
||||
void PUT_UAA32LE(void *p, unsigned int v, unsigned int i)
|
||||
{
|
||||
unsigned char *_p = (unsigned char *)&((unsigned int *)p)[i];
|
||||
_p[ 0 ] = v;
|
||||
_p[ 1 ] = v >> 8;
|
||||
_p[ 2 ] = v >> 16;
|
||||
_p[ 3 ] = v >> 24;
|
||||
}
|
||||
|
||||
void PUT_UAA16LE(void *p, unsigned short v, unsigned int i)
|
||||
{
|
||||
unsigned char *_p = (unsigned char *)&((unsigned short *)p)[i];
|
||||
_p[ 0 ] = v;
|
||||
_p[ 1 ] = v >> 8;
|
||||
}
|
||||
|
||||
|
||||
unsigned long long GET_UAA64BE(void *p, unsigned int i)
|
||||
{
|
||||
unsigned char *_p = (unsigned char *)&((unsigned long long *)p)[i];
|
||||
return
|
||||
(unsigned long long)_p[ 0 ] << 56 |
|
||||
(unsigned long long)_p[ 1 ] << 48 |
|
||||
(unsigned long long)_p[ 2 ] << 40 |
|
||||
(unsigned long long)_p[ 3 ] << 32 |
|
||||
(unsigned long long)_p[ 4 ] << 24 |
|
||||
(unsigned long long)_p[ 5 ] << 16 |
|
||||
(unsigned long long)_p[ 6 ] << 8 |
|
||||
(unsigned long long)_p[ 7 ];
|
||||
|
||||
}
|
||||
|
||||
unsigned int GET_UAA32BE(void *p, unsigned int i)
|
||||
{
|
||||
unsigned char *_p = (unsigned char *)&((unsigned int *)p)[i];
|
||||
return
|
||||
(unsigned int)_p[ 0 ] << 24 |
|
||||
(unsigned int)_p[ 1 ] << 16 |
|
||||
(unsigned int)_p[ 2 ] << 8 |
|
||||
(unsigned int)_p[ 3 ];
|
||||
}
|
||||
|
||||
unsigned short GET_UAA16BE(void *p, unsigned int i)
|
||||
{
|
||||
unsigned char *_p = (unsigned char *)&((unsigned short *)p)[i];
|
||||
return
|
||||
(unsigned short)_p[ 0 ] << 8 |
|
||||
(unsigned short)_p[ 1 ];
|
||||
}
|
||||
|
||||
|
||||
unsigned long long GET_UAA64LE(void *p, unsigned int i)
|
||||
{
|
||||
unsigned char *_p = (unsigned char *)&((unsigned long long *)p)[i];
|
||||
return
|
||||
(unsigned long long)_p[ 0 ] |
|
||||
(unsigned long long)_p[ 1 ] << 8 |
|
||||
(unsigned long long)_p[ 2 ] << 16 |
|
||||
(unsigned long long)_p[ 3 ] << 24 |
|
||||
(unsigned long long)_p[ 4 ] << 32 |
|
||||
(unsigned long long)_p[ 5 ] << 40 |
|
||||
(unsigned long long)_p[ 6 ] << 48 |
|
||||
(unsigned long long)_p[ 7 ] << 56;
|
||||
|
||||
}
|
||||
|
||||
unsigned int GET_UAA32LE(void *p, unsigned int i)
|
||||
{
|
||||
unsigned char *_p = (unsigned char *)&((unsigned int *)p)[i];
|
||||
return
|
||||
(unsigned int)_p[ 0 ] |
|
||||
(unsigned int)_p[ 1 ] << 8 |
|
||||
(unsigned int)_p[ 2 ] << 16 |
|
||||
(unsigned int)_p[ 3 ] << 24;
|
||||
}
|
||||
|
||||
unsigned short GET_UAA16LE(void *p, unsigned int i)
|
||||
{
|
||||
unsigned char *_p = (unsigned char *)&((unsigned short *)p)[i];
|
||||
return
|
||||
(unsigned short)_p[ 0 ] |
|
||||
(unsigned short)_p[ 1 ] << 8;
|
||||
}
|
||||
|
||||
|
||||
unsigned short BE16(unsigned short x)
|
||||
{
|
||||
return GET_UAA16BE(&x, 0);
|
||||
}
|
||||
|
||||
unsigned short LE16(unsigned short x)
|
||||
{
|
||||
return GET_UAA16LE(&x, 0);
|
||||
}
|
||||
|
||||
unsigned int BE32(unsigned int x)
|
||||
{
|
||||
return GET_UAA32BE(&x, 0);
|
||||
}
|
||||
|
||||
unsigned int LE32(unsigned int x)
|
||||
{
|
||||
return GET_UAA32LE(&x, 0);
|
||||
}
|
||||
|
||||
unsigned long long BE64(unsigned long long x)
|
||||
{
|
||||
return GET_UAA64BE(&x, 0);
|
||||
}
|
||||
|
||||
inline unsigned long long LE64(unsigned long long x)
|
||||
{
|
||||
return GET_UAA64LE(&x, 0);
|
||||
}
|
||||
|
||||
#endif // defined(__BYTE_ORDER)
|
Loading…
Add table
Add a link
Reference in a new issue