+
+void int64_LE2BE(int64_t* pBE, const int64_t v)
+{
+ /* convert little endian to big endian */
+ if (htonl(1) != 1L) { /* no work if on little endian machine */
+ memcpy(pBE, &v, sizeof(int64_t));
+ } else {
+ int i;
+ uint8_t rv[sizeof(int64_t)];
+ uint8_t *pv = (uint8_t *) &v;
+
+ for (i = 0; i < 8; i++) {
+ rv[i] = pv[7 - i];
+ }
+ memcpy(pBE, &rv, sizeof(int64_t));
+ }
+}
+
+
+void int32_LE2BE(int32_t* pBE, const int32_t v)
+{
+ /* convert little endian to big endian */
+ if (htonl(1) != 1L) { /* no work if on little endian machine */
+ memcpy(pBE, &v, sizeof(int32_t));
+ } else {
+ int i;
+ uint8_t rv[sizeof(int32_t)];
+ uint8_t *pv = (uint8_t *) &v;
+
+ for (i = 0; i < 4; i++) {
+ rv[i] = pv[3 - i];
+ }
+ memcpy(pBE, &rv, sizeof(int32_t));
+ }
+}
+
+