From: Li Wang Date: Wed, 15 May 2013 14:56:04 +0000 (+0800) Subject: Fix some little/big endian issues X-Git-Tag: v0.64~120 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=17d8ee9df56a29635c5d6b615ac67d9c56959f80;p=ceph.git Fix some little/big endian issues Ceph uses little endian, this patch fixes some endian issues while Ceph running on big endian machine. Signed-off-by: Yunchuan Wen Signed-off-by: Li Wang --- diff --git a/src/include/encoding.h b/src/include/encoding.h index eb445e3b070e..67c9af59d2be 100644 --- a/src/include/encoding.h +++ b/src/include/encoding.h @@ -88,11 +88,12 @@ inline void decode(bool &v, bufferlist::iterator& p) { #define WRITE_INTTYPE_ENCODER(type, etype) \ inline void encode(type v, bufferlist& bl, uint64_t features=0) { \ - __##etype e = init_##etype(v); \ + ceph_##etype e; \ + e = v; \ encode_raw(e, bl); \ } \ inline void decode(type &v, bufferlist::iterator& p) { \ - __##etype e; \ + ceph_##etype e; \ decode_raw(e, p); \ v = e; \ } @@ -338,7 +339,7 @@ inline void encode(const std::list& ls, bufferlist& bl) n++; encode(*p, bl); } - __le32 en; + ceph_le32 en; en = n; bl.copy_in(pos, sizeof(en), (char*)&en); } else { @@ -373,7 +374,7 @@ inline void encode(const std::list >& ls, bufferlist& bl n++; encode(**p, bl); } - __le32 en; + ceph_le32 en; en = n; bl.copy_in(pos, sizeof(en), (char*)&en); } else { @@ -696,7 +697,8 @@ inline void decode(std::deque& ls, bufferlist::iterator& p) __u8 struct_v = v, struct_compat = compat; \ ::encode(struct_v, bl); \ ::encode(struct_compat, bl); \ - __le32 struct_len = 0; \ + ceph_le32 struct_len; \ + struct_len = 0; \ ::encode(struct_len, bl); \ buffer::list::iterator struct_len_it = bl.end(); \ struct_len_it.advance(-4); \