diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-06-27 15:00:11 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-06-27 15:28:44 -0400 |
commit | 4d81f5211b3c714edae6370bccc6873033c0092d (patch) | |
tree | 351446df167a5e80530a66dcb7b13c697fa19180 /src/common | |
parent | 000de2f2ac4f740be8351673691371d78a5da7e9 (diff) | |
download | tor-4d81f5211b3c714edae6370bccc6873033c0092d.tar.gz tor-4d81f5211b3c714edae6370bccc6873033c0092d.zip |
Move set/get_uint*() to inline functions in arch/bytes.h
Also move our ntohll/htonll functions.
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/compat.c | 65 | ||||
-rw-r--r-- | src/common/compat.h | 17 | ||||
-rw-r--r-- | src/common/util.c | 21 | ||||
-rw-r--r-- | src/common/util.h | 3 |
4 files changed, 1 insertions, 105 deletions
diff --git a/src/common/compat.c b/src/common/compat.c index e26591776e..033ffa6aee 100644 --- a/src/common/compat.c +++ b/src/common/compat.c @@ -227,71 +227,6 @@ tor_strtok_r_impl(char *str, const char *sep, char **lasts) return start; } -/** - * Read a 16-bit value beginning at <b>cp</b>. Equivalent to - * *(uint16_t*)(cp), but will not cause segfaults on platforms that forbid - * unaligned memory access. - */ -uint16_t -get_uint16(const void *cp) -{ - uint16_t v; - memcpy(&v,cp,2); - return v; -} -/** - * Read a 32-bit value beginning at <b>cp</b>. Equivalent to - * *(uint32_t*)(cp), but will not cause segfaults on platforms that forbid - * unaligned memory access. - */ -uint32_t -get_uint32(const void *cp) -{ - uint32_t v; - memcpy(&v,cp,4); - return v; -} -/** - * Read a 64-bit value beginning at <b>cp</b>. Equivalent to - * *(uint64_t*)(cp), but will not cause segfaults on platforms that forbid - * unaligned memory access. - */ -uint64_t -get_uint64(const void *cp) -{ - uint64_t v; - memcpy(&v,cp,8); - return v; -} - -/** - * Set a 16-bit value beginning at <b>cp</b> to <b>v</b>. Equivalent to - * *(uint16_t*)(cp) = v, but will not cause segfaults on platforms that forbid - * unaligned memory access. */ -void -set_uint16(void *cp, uint16_t v) -{ - memcpy(cp,&v,2); -} -/** - * Set a 32-bit value beginning at <b>cp</b> to <b>v</b>. Equivalent to - * *(uint32_t*)(cp) = v, but will not cause segfaults on platforms that forbid - * unaligned memory access. */ -void -set_uint32(void *cp, uint32_t v) -{ - memcpy(cp,&v,4); -} -/** - * Set a 64-bit value beginning at <b>cp</b> to <b>v</b>. Equivalent to - * *(uint64_t*)(cp) = v, but will not cause segfaults on platforms that forbid - * unaligned memory access. */ -void -set_uint64(void *cp, uint64_t v) -{ - memcpy(cp,&v,8); -} - /** Represents a lockfile on which we hold the lock. */ struct tor_lockfile_t { /** Name of the file */ diff --git a/src/common/compat.h b/src/common/compat.h index 1379f95a7e..2282e07be3 100644 --- a/src/common/compat.h +++ b/src/common/compat.h @@ -46,6 +46,7 @@ #endif #include "lib/cc/compat_compiler.h" +#include "lib/arch/bytes.h" #include "common/compat_time.h" #include "lib/string/compat_ctype.h" #include "lib/string/compat_string.h" @@ -152,22 +153,6 @@ typedef enum { /* ===== OS compatibility */ MOCK_DECL(const char *, get_uname, (void)); -uint16_t get_uint16(const void *cp) ATTR_NONNULL((1)); -uint32_t get_uint32(const void *cp) ATTR_NONNULL((1)); -uint64_t get_uint64(const void *cp) ATTR_NONNULL((1)); -void set_uint16(void *cp, uint16_t v) ATTR_NONNULL((1)); -void set_uint32(void *cp, uint32_t v) ATTR_NONNULL((1)); -void set_uint64(void *cp, uint64_t v) ATTR_NONNULL((1)); - -/* These uint8 variants are defined to make the code more uniform. */ -#define get_uint8(cp) (*(const uint8_t*)(cp)) -static void set_uint8(void *cp, uint8_t v); -static inline void -set_uint8(void *cp, uint8_t v) -{ - *(uint8_t*)cp = v; -} - #if !defined(HAVE_RLIM_T) typedef unsigned long rlim_t; #endif diff --git a/src/common/util.c b/src/common/util.c index 6233b8e4f1..09d3b2679c 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -2848,24 +2848,3 @@ ENABLE_GCC_WARNING(double-promotion) ENABLE_GCC_WARNING(float-conversion) #endif } - -/** Return a uint64_t value from <b>a</b> in network byte order. */ -uint64_t -tor_htonll(uint64_t a) -{ -#ifdef WORDS_BIGENDIAN - /* Big endian. */ - return a; -#else /* WORDS_BIGENDIAN */ - /* Little endian. The worst... */ - return htonl((uint32_t)(a>>32)) | - (((uint64_t)htonl((uint32_t)a))<<32); -#endif /* defined(WORDS_BIGENDIAN) */ -} - -/** Return a uint64_t value from <b>a</b> in host byte order. */ -uint64_t -tor_ntohll(uint64_t a) -{ - return tor_htonll(a); -} diff --git a/src/common/util.h b/src/common/util.h index 4f8d6395d2..2b16fc4576 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -39,9 +39,6 @@ #include "lib/fs/files.h" #include "lib/fs/path.h" -uint64_t tor_htonll(uint64_t a); -uint64_t tor_ntohll(uint64_t a); - void tor_log_mallinfo(int severity); /** Macro: yield a pointer to an enclosing structure given a pointer to |