Use ceph_le16/32/64 instead of __le16/32/64 (which are no-op outside
of kernel code).
Fixes (partially): https://tracker.ceph.com/issues/41605
Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
(cherry picked from commit
ede1e851604bb55db4cc29f56ae9520c5d1ec727)
Changes from cherry-picked commit:
- Additional changes in src/msg/xio/XioMsg.h were necessary
(the file was deleted in mainline).
Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
static constexpr __le16 DEFAULT_ALIGNMENT = sizeof(void *);
- __le32 length;
- __le16 alignment;
+ ceph_le32 length;
+ ceph_le16 alignment;
} __attribute__((packed));
struct SegmentIndex {
__u8 _reserved[2];
// CRC32 for this single preamble block.
- __le32 crc;
+ ceph_le32 crc;
} __attribute__((packed));
static_assert(sizeof(preamble_block_t) % CRYPTO_BLOCK_SIZE == 0);
static_assert(std::is_standard_layout<preamble_block_t>::value);
// frame abortion facility.
struct epilogue_plain_block_t {
__u8 late_flags;
- std::array<__le32, MAX_NUM_SEGMENTS> crc_values;
+ std::array<ceph_le32, MAX_NUM_SEGMENTS> crc_values;
} __attribute__((packed));
static_assert(std::is_standard_layout<epilogue_plain_block_t>::value);
// define a wire format for sockaddr that matches Linux's.
struct ceph_sockaddr_storage {
- __le16 ss_family;
- __u8 __ss_padding[128 - sizeof(__le16)];
+ ceph_le16 ss_family;
+ __u8 __ss_padding[128 - sizeof(ceph_le16)];
void encode(bufferlist& bl) const {
struct ceph_sockaddr_storage ss = *this;
class XioMsgCnt
{
public:
- __le32 msg_cnt;
+ ceph_le32 msg_cnt;
buffer::list bl;
public:
explicit XioMsgCnt(buffer::ptr p)
{
public:
char tag;
- __le32 msg_cnt;
- __le32 peer_type;
+ ceph_le32 msg_cnt;
+ ceph_le32 peer_type;
entity_addr_t addr; /* XXX hack! */
ceph_msg_header* hdr;
ceph_msg_footer* ftr;
buffer::list bl;
public:
XioMsgHdr(ceph_msg_header& _hdr, ceph_msg_footer& _ftr, uint64_t _features)
- : tag(CEPH_MSGR_TAG_MSG), msg_cnt(0), hdr(&_hdr), ftr(&_ftr),
+ : tag(CEPH_MSGR_TAG_MSG), msg_cnt(init_le32(0)), hdr(&_hdr), ftr(&_ftr),
features(_features)
{ }