big endian support
This commit is contained in:
parent
784390bb4f
commit
43bd901f16
@ -19,6 +19,7 @@
|
|||||||
#ifndef ENDIAN_H
|
#ifndef ENDIAN_H
|
||||||
#define ENDIAN_H
|
#define ENDIAN_H
|
||||||
|
|
||||||
|
#include <endian.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <boost/static_assert.hpp>
|
#include <boost/static_assert.hpp>
|
||||||
|
|
||||||
@ -69,32 +70,32 @@ namespace base {
|
|||||||
|
|
||||||
template <>
|
template <>
|
||||||
inline uint16_t to_cpu<uint16_t, __le16>(__le16 const &d) {
|
inline uint16_t to_cpu<uint16_t, __le16>(__le16 const &d) {
|
||||||
return d.v_;
|
return le16toh(d.v_);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
inline __le16 to_disk<__le16, uint16_t>(uint16_t const &v) {
|
inline __le16 to_disk<__le16, uint16_t>(uint16_t const &v) {
|
||||||
return __le16(v);
|
return __le16(htole16(v));
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
inline uint32_t to_cpu<uint32_t, __le32>(__le32 const &d) {
|
inline uint32_t to_cpu<uint32_t, __le32>(__le32 const &d) {
|
||||||
return d.v_;
|
return le32toh(d.v_);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
inline __le32 to_disk<__le32, uint32_t>(uint32_t const &v) {
|
inline __le32 to_disk<__le32, uint32_t>(uint32_t const &v) {
|
||||||
return __le32(v);
|
return __le32(htole32(v));
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
inline uint64_t to_cpu<uint64_t, __le64>(__le64 const &d) {
|
inline uint64_t to_cpu<uint64_t, __le64>(__le64 const &d) {
|
||||||
return d.v_;
|
return le64toh(d.v_);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
inline __le64 to_disk<__le64, uint64_t>(uint64_t const &v) {
|
inline __le64 to_disk<__le64, uint64_t>(uint64_t const &v) {
|
||||||
return __le64(v);
|
return __le64(htole64(v));
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------
|
//--------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user