I2PEndian.cpp
1 /* 2 * Copyright (c) 2013-2022, The PurpleI2P Project 3 * 4 * This file is part of Purple i2pd project and licensed under BSD3 5 * 6 * See full license text in LICENSE file at top of project tree 7 */ 8 9 #include "I2PEndian.h" 10 11 // http://habrahabr.ru/post/121811/ 12 // http://codepad.org/2ycmkz2y 13 14 #include "LittleBigEndian.h" 15 16 #ifdef NEEDS_LOCAL_ENDIAN 17 uint16_t htobe16(uint16_t int16) 18 { 19 BigEndian<uint16_t> u16(int16); 20 return u16.raw_value; 21 } 22 23 uint32_t htobe32(uint32_t int32) 24 { 25 BigEndian<uint32_t> u32(int32); 26 return u32.raw_value; 27 } 28 29 uint64_t htobe64(uint64_t int64) 30 { 31 BigEndian<uint64_t> u64(int64); 32 return u64.raw_value; 33 } 34 35 uint16_t be16toh(uint16_t big16) 36 { 37 LittleEndian<uint16_t> u16(big16); 38 return u16.raw_value; 39 } 40 41 uint32_t be32toh(uint32_t big32) 42 { 43 LittleEndian<uint32_t> u32(big32); 44 return u32.raw_value; 45 } 46 47 uint64_t be64toh(uint64_t big64) 48 { 49 LittleEndian<uint64_t> u64(big64); 50 return u64.raw_value; 51 } 52 #endif