fix endian.h (be64toh) bug

This commit is contained in:
chertov 2014-01-22 10:46:58 +04:00
parent 27e448290d
commit 91307d9732
5 changed files with 211 additions and 102 deletions

View file

@ -1,81 +1,81 @@
#include "I2PEndian.h"
// http://habrahabr.ru/post/121811/
// http://codepad.org/2ycmkz2y
#include "LittleBigEndian.h"
uint16_t htobe16(uint16_t int16)
{
BigEndian<uint16_t> u16(int16);
return u16.raw_value;
}
uint32_t htobe32(uint32_t int32)
{
BigEndian<uint32_t> u32(int32);
return u32.raw_value;
}
uint64_t htobe64(uint64_t int64)
{
BigEndian<uint64_t> u64(int64);
return u64.raw_value;
}
uint16_t be16toh(uint16_t big16)
{
LittleEndian<uint16_t> u16(big16);
return u16.raw_value;
}
uint32_t be32toh(uint32_t big32)
{
LittleEndian<uint32_t> u32(big32);
return u32.raw_value;
}
uint64_t be64toh(uint64_t big64)
{
LittleEndian<uint64_t> u64(big64);
return u64.raw_value;
}
/* it can be used in Windows 8
#include <Winsock2.h>
uint16_t htobe16(uint16_t int16)
{
return htons(int16);
}
uint32_t htobe32(uint32_t int32)
{
return htonl(int32);
}
uint64_t htobe64(uint64_t int64)
{
// http://msdn.microsoft.com/en-us/library/windows/desktop/jj710199%28v=vs.85%29.aspx
//return htonll(int64);
return 0;
}
uint16_t be16toh(uint16_t big16)
{
return ntohs(big16);
}
uint32_t be32toh(uint32_t big32)
{
return ntohl(big32);
}
uint64_t be64toh(uint64_t big64)
{
// http://msdn.microsoft.com/en-us/library/windows/desktop/jj710199%28v=vs.85%29.aspx
//return ntohll(big64);
return 0;
}
*/
//#include "I2PEndian.h"
//
//// http://habrahabr.ru/post/121811/
//// http://codepad.org/2ycmkz2y
//
//#include "LittleBigEndian.h"
//
//uint16_t htobe16(uint16_t int16)
//{
// BigEndian<uint16_t> u16(int16);
// return u16.raw_value;
//}
//
//uint32_t htobe32(uint32_t int32)
//{
// BigEndian<uint32_t> u32(int32);
// return u32.raw_value;
//}
//
//uint64_t htobe64(uint64_t int64)
//{
// BigEndian<uint64_t> u64(int64);
// return u64.raw_value;
//}
//
//uint16_t be16toh(uint16_t big16)
//{
// LittleEndian<uint16_t> u16(big16);
// return u16.raw_value;
//}
//
//uint32_t be32toh(uint32_t big32)
//{
// LittleEndian<uint32_t> u32(big32);
// return u32.raw_value;
//}
//
//uint64_t be64toh(uint64_t big64)
//{
// LittleEndian<uint64_t> u64(big64);
// return u64.raw_value;
//}
//
///* it can be used in Windows 8
//#include <Winsock2.h>
//
//uint16_t htobe16(uint16_t int16)
//{
// return htons(int16);
//}
//
//uint32_t htobe32(uint32_t int32)
//{
// return htonl(int32);
//}
//
//uint64_t htobe64(uint64_t int64)
//{
// // http://msdn.microsoft.com/en-us/library/windows/desktop/jj710199%28v=vs.85%29.aspx
// //return htonll(int64);
// return 0;
//}
//
//
//uint16_t be16toh(uint16_t big16)
//{
// return ntohs(big16);
//}
//
//uint32_t be32toh(uint32_t big32)
//{
// return ntohl(big32);
//}
//
//uint64_t be64toh(uint64_t big64)
//{
// // http://msdn.microsoft.com/en-us/library/windows/desktop/jj710199%28v=vs.85%29.aspx
// //return ntohll(big64);
// return 0;
//}
//*/