summaryrefslogtreecommitdiff
path: root/src/Util.h
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-08-24 07:55:34 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-08-24 07:55:34 +0000
commit02dde388b8cd7dd914b07ffa67a326b0dad8ad88 (patch)
tree28040cb0b1cfd71db27b8eb26a935aeb6aac7251 /src/Util.h
parented25d2e245a84704389692478343de5d8f2f8771 (diff)
2008-08-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added ntoh64 and hton64 as inline functions. * src/Util.cc * test/UtilTest.cc
Diffstat (limited to 'src/Util.h')
-rw-r--r--src/Util.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/Util.h b/src/Util.h
index 422e9911..7e63b060 100644
--- a/src/Util.h
+++ b/src/Util.h
@@ -61,6 +61,19 @@ class FileEntry;
#define DIV_FLOOR(X,Y) ((X)/(Y)+((X)%(Y)? 1:0))
+#ifdef WORDS_BIGENDIAN
+inline uint64_t ntoh64(uint64_t x) { return x; }
+inline uint64_t hton64(uint64_t x) { return x; }
+#else // !WORDS_BIGENDIAN
+inline uint64_t byteswap64(uint64_t x) {
+ uint64_t v1 = ntohl(x & 0x00000000ffffffff);
+ uint64_t v2 = ntohl(x >> 32);
+ return (v1 << 32)|v2;
+}
+inline uint64_t ntoh64(uint64_t x) { return byteswap64(x); }
+inline uint64_t hton64(uint64_t x) { return byteswap64(x); }
+#endif // !WORDS_BIGENDIAN
+
class Util {
public:
static void split(std::pair<std::string, std::string>& hp,