#define BigLittleSwap16(A) ((((unsigned short int)(A) & 0xff00) >> 8) | (((unsigned short int)(A) & 0x00ff) << 8))
#define BigLittleSwap32(A) ((((unsigned int)(A) & 0xff000000) >> 24) | (((unsigned int)(A) & 0x00ff0000) >> 8) | \
(((unsigned int)(A) & 0x0000ff00) << 8) | (((unsigned int)(A) & 0x000000ff) << 24))
int checkCPUendian()
{
union{
unsigned long int i;
unsigned char s[4];
}c;
c.i=0x12345678;
return (0x12 == c.s[0]);
}
quint32 net2hostl(unsigned short int a)
{
return checkCPUendian() ? a : BigLittleSwap32(a);
}
quint32 hostnetl(unsigned short int a)
{
return checkCPUendian() ? a : BigLittleSwap32(a);
}
quint16 net2hosts(unsigned short int a)
{
return checkCPUendian() ? a : BigLittleSwap16(a);
}
quint16 hostnets(unsigned short int a)
{
return checkCPUendian() ? a : BigLittleSwap16(a);
}