aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2018-12-04 17:30:11 +0200
committerRiccardo Spagni <ric@spagni.net>2018-12-04 17:30:11 +0200
commite799fc87ae7c0dfc44e26f58a6722e2779fccdf5 (patch)
tree7d100d4de2e14871bf5b713528fb53113d213265 /src
parentMerge pull request #4880 (diff)
parentepee: fix network packet header field endianness (diff)
downloadmonero-e799fc87ae7c0dfc44e26f58a6722e2779fccdf5.tar.xz
Merge pull request #4866
9c923bad epee: fix network packet header field endianness (moneromooo-monero) ec1a62b5 move int-util.h to epee (moneromooo-monero)
Diffstat (limited to 'src')
-rw-r--r--src/common/CMakeLists.txt1
-rw-r--r--src/common/int-util.h258
-rw-r--r--src/crypto/aesb.c2
-rw-r--r--src/crypto/chacha.c2
-rw-r--r--src/crypto/groestl_tables.h2
-rw-r--r--src/crypto/hash-ops.h2
-rw-r--r--src/crypto/keccak.c2
-rw-r--r--src/crypto/skein_port.h2
-rw-r--r--src/crypto/slow-hash.c2
-rw-r--r--src/cryptonote_basic/cryptonote_basic_impl.cpp2
-rw-r--r--src/cryptonote_basic/difficulty.cpp2
-rw-r--r--src/cryptonote_core/blockchain.cpp2
-rw-r--r--src/cryptonote_core/tx_pool.cpp2
-rw-r--r--src/device/device_default.cpp2
-rw-r--r--src/mnemonics/electrum-words.cpp2
15 files changed, 13 insertions, 272 deletions
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
index 3045c003c..5da23c944 100644
--- a/src/common/CMakeLists.txt
+++ b/src/common/CMakeLists.txt
@@ -63,7 +63,6 @@ set(common_private_headers
error.h
expect.h
http_connection.h
- int-util.h
notify.h
pod-class.h
rpc_client.h
diff --git a/src/common/int-util.h b/src/common/int-util.h
deleted file mode 100644
index 3bcc085e2..000000000
--- a/src/common/int-util.h
+++ /dev/null
@@ -1,258 +0,0 @@
-// Copyright (c) 2014-2018, The Monero Project
-//
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without modification, are
-// permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this list of
-// conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice, this list
-// of conditions and the following disclaimer in the documentation and/or other
-// materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its contributors may be
-// used to endorse or promote products derived from this software without specific
-// prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
-// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
-// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers
-
-#pragma once
-
-#include <assert.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <string.h>
-
-#ifndef _MSC_VER
-#include <sys/param.h>
-#endif
-
-#if defined(__ANDROID__)
-#include <byteswap.h>
-#endif
-
-#if defined(__sun) && defined(__SVR4)
-#include <endian.h>
-#endif
-
-#if defined(_MSC_VER)
-#include <stdlib.h>
-
-static inline uint32_t rol32(uint32_t x, int r) {
- static_assert(sizeof(uint32_t) == sizeof(unsigned int), "this code assumes 32-bit integers");
- return _rotl(x, r);
-}
-
-static inline uint64_t rol64(uint64_t x, int r) {
- return _rotl64(x, r);
-}
-
-#else
-
-static inline uint32_t rol32(uint32_t x, int r) {
- return (x << (r & 31)) | (x >> (-r & 31));
-}
-
-static inline uint64_t rol64(uint64_t x, int r) {
- return (x << (r & 63)) | (x >> (-r & 63));
-}
-
-#endif
-
-static inline uint64_t hi_dword(uint64_t val) {
- return val >> 32;
-}
-
-static inline uint64_t lo_dword(uint64_t val) {
- return val & 0xFFFFFFFF;
-}
-
-static inline uint64_t mul128(uint64_t multiplier, uint64_t multiplicand, uint64_t* product_hi) {
- // multiplier = ab = a * 2^32 + b
- // multiplicand = cd = c * 2^32 + d
- // ab * cd = a * c * 2^64 + (a * d + b * c) * 2^32 + b * d
- uint64_t a = hi_dword(multiplier);
- uint64_t b = lo_dword(multiplier);
- uint64_t c = hi_dword(multiplicand);
- uint64_t d = lo_dword(multiplicand);
-
- uint64_t ac = a * c;
- uint64_t ad = a * d;
- uint64_t bc = b * c;
- uint64_t bd = b * d;
-
- uint64_t adbc = ad + bc;
- uint64_t adbc_carry = adbc < ad ? 1 : 0;
-
- // multiplier * multiplicand = product_hi * 2^64 + product_lo
- uint64_t product_lo = bd + (adbc << 32);
- uint64_t product_lo_carry = product_lo < bd ? 1 : 0;
- *product_hi = ac + (adbc >> 32) + (adbc_carry << 32) + product_lo_carry;
- assert(ac <= *product_hi);
-
- return product_lo;
-}
-
-static inline uint64_t div_with_reminder(uint64_t dividend, uint32_t divisor, uint32_t* remainder) {
- dividend |= ((uint64_t)*remainder) << 32;
- *remainder = dividend % divisor;
- return dividend / divisor;
-}
-
-// Long division with 2^32 base
-static inline uint32_t div128_32(uint64_t dividend_hi, uint64_t dividend_lo, uint32_t divisor, uint64_t* quotient_hi, uint64_t* quotient_lo) {
- uint64_t dividend_dwords[4];
- uint32_t remainder = 0;
-
- dividend_dwords[3] = hi_dword(dividend_hi);
- dividend_dwords[2] = lo_dword(dividend_hi);
- dividend_dwords[1] = hi_dword(dividend_lo);
- dividend_dwords[0] = lo_dword(dividend_lo);
-
- *quotient_hi = div_with_reminder(dividend_dwords[3], divisor, &remainder) << 32;
- *quotient_hi |= div_with_reminder(dividend_dwords[2], divisor, &remainder);
- *quotient_lo = div_with_reminder(dividend_dwords[1], divisor, &remainder) << 32;
- *quotient_lo |= div_with_reminder(dividend_dwords[0], divisor, &remainder);
-
- return remainder;
-}
-
-#define IDENT32(x) ((uint32_t) (x))
-#define IDENT64(x) ((uint64_t) (x))
-
-#define SWAP32(x) ((((uint32_t) (x) & 0x000000ff) << 24) | \
- (((uint32_t) (x) & 0x0000ff00) << 8) | \
- (((uint32_t) (x) & 0x00ff0000) >> 8) | \
- (((uint32_t) (x) & 0xff000000) >> 24))
-#define SWAP64(x) ((((uint64_t) (x) & 0x00000000000000ff) << 56) | \
- (((uint64_t) (x) & 0x000000000000ff00) << 40) | \
- (((uint64_t) (x) & 0x0000000000ff0000) << 24) | \
- (((uint64_t) (x) & 0x00000000ff000000) << 8) | \
- (((uint64_t) (x) & 0x000000ff00000000) >> 8) | \
- (((uint64_t) (x) & 0x0000ff0000000000) >> 24) | \
- (((uint64_t) (x) & 0x00ff000000000000) >> 40) | \
- (((uint64_t) (x) & 0xff00000000000000) >> 56))
-
-static inline uint32_t ident32(uint32_t x) { return x; }
-static inline uint64_t ident64(uint64_t x) { return x; }
-
-#ifndef __OpenBSD__
-# if defined(__ANDROID__) && defined(__swap32) && !defined(swap32)
-# define swap32 __swap32
-# elif !defined(swap32)
-static inline uint32_t swap32(uint32_t x) {
- x = ((x & 0x00ff00ff) << 8) | ((x & 0xff00ff00) >> 8);
- return (x << 16) | (x >> 16);
-}
-# endif
-# if defined(__ANDROID__) && defined(__swap64) && !defined(swap64)
-# define swap64 __swap64
-# elif !defined(swap64)
-static inline uint64_t swap64(uint64_t x) {
- x = ((x & 0x00ff00ff00ff00ff) << 8) | ((x & 0xff00ff00ff00ff00) >> 8);
- x = ((x & 0x0000ffff0000ffff) << 16) | ((x & 0xffff0000ffff0000) >> 16);
- return (x << 32) | (x >> 32);
-}
-# endif
-#endif /* __OpenBSD__ */
-
-#if defined(__GNUC__)
-#define UNUSED __attribute__((unused))
-#else
-#define UNUSED
-#endif
-static inline void mem_inplace_ident(void *mem UNUSED, size_t n UNUSED) { }
-#undef UNUSED
-
-static inline void mem_inplace_swap32(void *mem, size_t n) {
- size_t i;
- for (i = 0; i < n; i++) {
- ((uint32_t *) mem)[i] = swap32(((const uint32_t *) mem)[i]);
- }
-}
-static inline void mem_inplace_swap64(void *mem, size_t n) {
- size_t i;
- for (i = 0; i < n; i++) {
- ((uint64_t *) mem)[i] = swap64(((const uint64_t *) mem)[i]);
- }
-}
-
-static inline void memcpy_ident32(void *dst, const void *src, size_t n) {
- memcpy(dst, src, 4 * n);
-}
-static inline void memcpy_ident64(void *dst, const void *src, size_t n) {
- memcpy(dst, src, 8 * n);
-}
-
-static inline void memcpy_swap32(void *dst, const void *src, size_t n) {
- size_t i;
- for (i = 0; i < n; i++) {
- ((uint32_t *) dst)[i] = swap32(((const uint32_t *) src)[i]);
- }
-}
-static inline void memcpy_swap64(void *dst, const void *src, size_t n) {
- size_t i;
- for (i = 0; i < n; i++) {
- ((uint64_t *) dst)[i] = swap64(((const uint64_t *) src)[i]);
- }
-}
-
-#ifdef _MSC_VER
-# define LITTLE_ENDIAN 1234
-# define BIG_ENDIAN 4321
-# define BYTE_ORDER LITTLE_ENDIAN
-#endif
-
-#if !defined(BYTE_ORDER) || !defined(LITTLE_ENDIAN) || !defined(BIG_ENDIAN)
-static_assert(false, "BYTE_ORDER is undefined. Perhaps, GNU extensions are not enabled");
-#endif
-
-#if BYTE_ORDER == LITTLE_ENDIAN
-#define SWAP32LE IDENT32
-#define SWAP32BE SWAP32
-#define swap32le ident32
-#define swap32be swap32
-#define mem_inplace_swap32le mem_inplace_ident
-#define mem_inplace_swap32be mem_inplace_swap32
-#define memcpy_swap32le memcpy_ident32
-#define memcpy_swap32be memcpy_swap32
-#define SWAP64LE IDENT64
-#define SWAP64BE SWAP64
-#define swap64le ident64
-#define swap64be swap64
-#define mem_inplace_swap64le mem_inplace_ident
-#define mem_inplace_swap64be mem_inplace_swap64
-#define memcpy_swap64le memcpy_ident64
-#define memcpy_swap64be memcpy_swap64
-#endif
-
-#if BYTE_ORDER == BIG_ENDIAN
-#define SWAP32BE IDENT32
-#define SWAP32LE SWAP32
-#define swap32be ident32
-#define swap32le swap32
-#define mem_inplace_swap32be mem_inplace_ident
-#define mem_inplace_swap32le mem_inplace_swap32
-#define memcpy_swap32be memcpy_ident32
-#define memcpy_swap32le memcpy_swap32
-#define SWAP64BE IDENT64
-#define SWAP64LE SWAP64
-#define swap64be ident64
-#define swap64le swap64
-#define mem_inplace_swap64be mem_inplace_ident
-#define mem_inplace_swap64le mem_inplace_swap64
-#define memcpy_swap64be memcpy_ident64
-#define memcpy_swap64le memcpy_swap64
-#endif
diff --git a/src/crypto/aesb.c b/src/crypto/aesb.c
index 8a22a4b93..efdeef8d1 100644
--- a/src/crypto/aesb.c
+++ b/src/crypto/aesb.c
@@ -19,7 +19,7 @@ Issue Date: 20/12/2007
*/
#include <stdint.h>
-#include "common/int-util.h"
+#include "int-util.h"
#if defined(__cplusplus)
extern "C"
diff --git a/src/crypto/chacha.c b/src/crypto/chacha.c
index 5d3edb98d..d734e8b1b 100644
--- a/src/crypto/chacha.c
+++ b/src/crypto/chacha.c
@@ -11,7 +11,7 @@ Public domain.
#endif
#include "chacha.h"
-#include "common/int-util.h"
+#include "int-util.h"
#include "warnings.h"
/*
diff --git a/src/crypto/groestl_tables.h b/src/crypto/groestl_tables.h
index 53594c569..12472dced 100644
--- a/src/crypto/groestl_tables.h
+++ b/src/crypto/groestl_tables.h
@@ -29,7 +29,7 @@
#ifndef __tables_h
#define __tables_h
-#include "common/int-util.h"
+#include "int-util.h"
#if BYTE_ORDER == LITTLE_ENDIAN
diff --git a/src/crypto/hash-ops.h b/src/crypto/hash-ops.h
index d77d55cf3..77b52e2d4 100644
--- a/src/crypto/hash-ops.h
+++ b/src/crypto/hash-ops.h
@@ -37,7 +37,7 @@
#include <stddef.h>
#include <stdint.h>
-#include "common/int-util.h"
+#include "int-util.h"
#include "warnings.h"
static inline void *padd(void *p, size_t i) {
diff --git a/src/crypto/keccak.c b/src/crypto/keccak.c
index b095b5ce2..170911262 100644
--- a/src/crypto/keccak.c
+++ b/src/crypto/keccak.c
@@ -5,7 +5,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
-#include "common/int-util.h"
+#include "int-util.h"
#include "hash-ops.h"
#include "keccak.h"
diff --git a/src/crypto/skein_port.h b/src/crypto/skein_port.h
index a50a28e6b..8a1640e57 100644
--- a/src/crypto/skein_port.h
+++ b/src/crypto/skein_port.h
@@ -114,7 +114,7 @@ typedef uint64_t u64b_t; /* 64-bit unsigned integer */
#ifndef SKEIN_NEED_SWAP /* compile-time "override" for endianness? */
-#include "common/int-util.h"
+#include "int-util.h"
#define IS_BIG_ENDIAN 4321 /* byte 0 is most significant (mc68k) */
#define IS_LITTLE_ENDIAN 1234 /* byte 0 is least significant (i386) */
diff --git a/src/crypto/slow-hash.c b/src/crypto/slow-hash.c
index dcbabccab..ae0bd4e98 100644
--- a/src/crypto/slow-hash.c
+++ b/src/crypto/slow-hash.c
@@ -35,7 +35,7 @@
#include <stdio.h>
#include <unistd.h>
-#include "common/int-util.h"
+#include "int-util.h"
#include "hash-ops.h"
#include "oaes_lib.h"
#include "variant2_int_sqrt.h"
diff --git a/src/cryptonote_basic/cryptonote_basic_impl.cpp b/src/cryptonote_basic/cryptonote_basic_impl.cpp
index c4e10851e..41b5f19f0 100644
--- a/src/cryptonote_basic/cryptonote_basic_impl.cpp
+++ b/src/cryptonote_basic/cryptonote_basic_impl.cpp
@@ -40,7 +40,7 @@ using namespace epee;
#include "misc_language.h"
#include "common/base58.h"
#include "crypto/hash.h"
-#include "common/int-util.h"
+#include "int-util.h"
#include "common/dns_utils.h"
#undef MONERO_DEFAULT_LOG_CATEGORY
diff --git a/src/cryptonote_basic/difficulty.cpp b/src/cryptonote_basic/difficulty.cpp
index cb2a00a12..55e3e93b3 100644
--- a/src/cryptonote_basic/difficulty.cpp
+++ b/src/cryptonote_basic/difficulty.cpp
@@ -34,7 +34,7 @@
#include <cstdint>
#include <vector>
-#include "common/int-util.h"
+#include "int-util.h"
#include "crypto/hash.h"
#include "cryptonote_config.h"
#include "difficulty.h"
diff --git a/src/cryptonote_core/blockchain.cpp b/src/cryptonote_core/blockchain.cpp
index 80e0a983e..ca569a16f 100644
--- a/src/cryptonote_core/blockchain.cpp
+++ b/src/cryptonote_core/blockchain.cpp
@@ -44,7 +44,7 @@
#include "misc_language.h"
#include "profile_tools.h"
#include "file_io_utils.h"
-#include "common/int-util.h"
+#include "int-util.h"
#include "common/threadpool.h"
#include "common/boost_serialization_helper.h"
#include "warnings.h"
diff --git a/src/cryptonote_core/tx_pool.cpp b/src/cryptonote_core/tx_pool.cpp
index e2900916b..d4b4e4d34 100644
--- a/src/cryptonote_core/tx_pool.cpp
+++ b/src/cryptonote_core/tx_pool.cpp
@@ -40,7 +40,7 @@
#include "blockchain.h"
#include "blockchain_db/blockchain_db.h"
#include "common/boost_serialization_helper.h"
-#include "common/int-util.h"
+#include "int-util.h"
#include "misc_language.h"
#include "warnings.h"
#include "common/perf_timer.h"
diff --git a/src/device/device_default.cpp b/src/device/device_default.cpp
index 1e3d80949..2286998a4 100644
--- a/src/device/device_default.cpp
+++ b/src/device/device_default.cpp
@@ -31,7 +31,7 @@
#include "device_default.hpp"
-#include "common/int-util.h"
+#include "int-util.h"
#include "cryptonote_basic/account.h"
#include "cryptonote_basic/subaddress_index.h"
#include "ringct/rctOps.h"
diff --git a/src/mnemonics/electrum-words.cpp b/src/mnemonics/electrum-words.cpp
index e6d2a6b76..b1e3bdcd5 100644
--- a/src/mnemonics/electrum-words.cpp
+++ b/src/mnemonics/electrum-words.cpp
@@ -42,7 +42,7 @@
#include <unordered_map>
#include "wipeable_string.h"
#include "misc_language.h"
-#include "common/int-util.h"
+#include "int-util.h"
#include "mnemonics/electrum-words.h"
#include <boost/crc.hpp>