summaryrefslogtreecommitdiff
path: root/gnuradio-runtime/lib
diff options
context:
space:
mode:
authorJacob Gilbert <mrjacobagilbert@gmail.com>2020-04-16 06:34:12 -0600
committermormj <34754695+mormj@users.noreply.github.com>2020-04-23 10:16:37 -0400
commit7a30ee7b7528f5852884ab0a8045c0375d623840 (patch)
tree9c340312e18fd33f95363114cf426e990107f04b /gnuradio-runtime/lib
parentf4e93858f265ddf32061af758ed52fd24c592ea7 (diff)
pmt: serialization change from endian.h to boost::endian conversion
this is more portable since endian.h is not available on all platforms, and may have some implementation inconsistencies
Diffstat (limited to 'gnuradio-runtime/lib')
-rw-r--r--gnuradio-runtime/lib/pmt/pmt_serialize.cc30
1 files changed, 15 insertions, 15 deletions
diff --git a/gnuradio-runtime/lib/pmt/pmt_serialize.cc b/gnuradio-runtime/lib/pmt/pmt_serialize.cc
index 188a720549..696ac33695 100644
--- a/gnuradio-runtime/lib/pmt/pmt_serialize.cc
+++ b/gnuradio-runtime/lib/pmt/pmt_serialize.cc
@@ -14,8 +14,8 @@
#include "pmt/pmt_serial_tags.h"
#include "pmt_int.h"
-#include <endian.h>
#include <pmt/pmt.h>
+#include <boost/endian/conversion.hpp>
#include <limits>
#include <vector>
@@ -35,14 +35,14 @@ static bool serialize_untagged_u8(uint8_t i, std::streambuf& sb)
// always writes big-endian
static bool serialize_untagged_u16(uint16_t i, std::streambuf& sb)
{
- i = htobe16(i);
+ boost::endian::native_to_big_inplace(i);
return sb.sputn((char*)&i, sizeof(i)) != std::streambuf::traits_type::eof();
}
// always writes big-endian
static bool serialize_untagged_u32(uint32_t i, std::streambuf& sb)
{
- i = htobe32(i);
+ boost::endian::native_to_big_inplace(i);
return sb.sputn((char*)&i, sizeof(i)) != std::streambuf::traits_type::eof();
}
@@ -54,14 +54,14 @@ static bool serialize_untagged_f64(double i, std::streambuf& sb)
} iu_t;
iu_t iu;
iu.id = i;
- iu.ii = htobe64(iu.ii);
+ boost::endian::native_to_big_inplace(iu.ii);
return sb.sputn((char*)&iu.ii, sizeof(iu.ii)) != std::streambuf::traits_type::eof();
}
// always writes big-endian
static bool serialize_untagged_u64(uint64_t i, std::streambuf& sb)
{
- i = htobe64(i);
+ boost::endian::native_to_big_inplace(i);
return sb.sputn((char*)&i, sizeof(i)) != std::streambuf::traits_type::eof();
}
@@ -77,7 +77,7 @@ serialize_untagged_u16_array(const uint16_t* data, size_t length, std::streambuf
{
std::vector<uint16_t> bedata(length);
for (size_t i = 0; i < length; i++) {
- bedata[i] = htobe16(data[i]);
+ bedata[i] = boost::endian::native_to_big(data[i]);
}
return sb.sputn((char*)&bedata[0], length * sizeof(uint16_t)) !=
std::streambuf::traits_type::eof();
@@ -88,7 +88,7 @@ serialize_untagged_u32_array(const uint32_t* data, size_t length, std::streambuf
{
std::vector<uint32_t> bedata(length);
for (size_t i = 0; i < length; i++) {
- bedata[i] = htobe32(data[i]);
+ bedata[i] = boost::endian::native_to_big(data[i]);
}
return sb.sputn((char*)&bedata[0], length * sizeof(uint32_t)) !=
std::streambuf::traits_type::eof();
@@ -99,7 +99,7 @@ serialize_untagged_u64_array(const uint64_t* data, size_t length, std::streambuf
{
std::vector<uint64_t> bedata(length);
for (size_t i = 0; i < length; i++) {
- bedata[i] = htobe64(data[i]);
+ bedata[i] = boost::endian::native_to_big(data[i]);
}
return sb.sputn((char*)&bedata[0], length * sizeof(uint64_t)) !=
std::streambuf::traits_type::eof();
@@ -128,7 +128,7 @@ static bool deserialize_untagged_u16(uint16_t* ip, std::streambuf& sb)
std::streambuf::traits_type::int_type t;
t = sb.sgetn((char*)ip, sizeof(uint16_t));
sb.pubseekoff(sizeof(uint16_t), std::ios_base::cur);
- *ip = be16toh(*ip);
+ boost::endian::big_to_native_inplace(*ip);
return t != std::streambuf::traits_type::eof();
}
@@ -139,7 +139,7 @@ static bool deserialize_untagged_u32(uint32_t* ip, std::streambuf& sb)
std::streambuf::traits_type::int_type t;
t = sb.sgetn((char*)ip, sizeof(uint32_t));
sb.pubseekoff(sizeof(uint32_t), std::ios_base::cur);
- *ip = be32toh(*ip);
+ boost::endian::big_to_native_inplace(*ip);
return t != std::streambuf::traits_type::eof();
}
@@ -150,7 +150,7 @@ static bool deserialize_untagged_u64(uint64_t* ip, std::streambuf& sb)
std::streambuf::traits_type::int_type t;
t = sb.sgetn((char*)ip, sizeof(uint64_t));
sb.pubseekoff(sizeof(uint64_t), std::ios_base::cur);
- *ip = be64toh(*ip);
+ boost::endian::big_to_native_inplace(*ip);
return t != std::streambuf::traits_type::eof();
}
@@ -167,7 +167,7 @@ static bool deserialize_untagged_f64(double* ip, std::streambuf& sb)
iu_t iu;
t = sb.sgetn((char*)&iu, sizeof(uint64_t));
sb.pubseekoff(sizeof(uint64_t), std::ios_base::cur);
- iu.ii = be64toh(iu.ii);
+ boost::endian::big_to_native_inplace(iu.ii);
*ip = iu.id;
return t != std::streambuf::traits_type::eof();
@@ -212,7 +212,7 @@ static bool deserialize_untagged_u16_vector(std::vector<uint16_t>& data,
t = sb.sgetn((char*)&data[0], nitems * sizeof(uint16_t));
sb.pubseekoff(sizeof(uint16_t) * nitems, std::ios_base::cur);
for (size_t i = 0; i < nitems; i++) {
- data[i] = be16toh(data[i]);
+ boost::endian::big_to_native_inplace(data[i]);
}
return t != std::streambuf::traits_type::eof();
@@ -227,7 +227,7 @@ static bool deserialize_untagged_u32_vector(std::vector<uint32_t>& data,
t = sb.sgetn((char*)&data[0], nitems * sizeof(uint32_t));
sb.pubseekoff(sizeof(uint32_t) * nitems, std::ios_base::cur);
for (size_t i = 0; i < nitems; i++) {
- data[i] = be32toh(data[i]);
+ boost::endian::big_to_native_inplace(data[i]);
}
return t != std::streambuf::traits_type::eof();
@@ -242,7 +242,7 @@ static bool deserialize_untagged_u64_vector(std::vector<uint64_t>& data,
t = sb.sgetn((char*)&data[0], nitems * sizeof(uint64_t));
sb.pubseekoff(sizeof(uint64_t) * nitems, std::ios_base::cur);
for (size_t i = 0; i < nitems; i++) {
- data[i] = be64toh(data[i]);
+ boost::endian::big_to_native_inplace(data[i]);
}
return t != std::streambuf::traits_type::eof();