aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-01-02 23:09:54 -0800
committerGarrett D'Amore <garrett@damore.org>2017-01-02 23:09:54 -0800
commit7ba8f81d551af515864c2c4ca47edf540a5edd32 (patch)
tree014883550e88d527d9b520658c98c7136cfa955b /src
parent1c54bc5674a54d84112da5191c28a745d448c816 (diff)
downloadnng-7ba8f81d551af515864c2c4ca47edf540a5edd32.tar.gz
nng-7ba8f81d551af515864c2c4ca47edf540a5edd32.tar.bz2
nng-7ba8f81d551af515864c2c4ca47edf540a5edd32.zip
Add NNI_PUT64 and NNI_GET64.
Diffstat (limited to 'src')
-rw-r--r--src/core/defs.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/core/defs.h b/src/core/defs.h
index 1114704d..395335d6 100644
--- a/src/core/defs.h
+++ b/src/core/defs.h
@@ -52,10 +52,33 @@ typedef int64_t nni_duration; // Relative time (usec).
ptr[3] = (uint8_t)((uint32_t)u); \
} while (0)
+#define NNI_PUT64(ptr, u) \
+ do { \
+ ptr[0] = (uint8_t)(((uint64_t)u) >> 56); \
+ ptr[1] = (uint8_t)(((uint64_t)u) >> 48); \
+ ptr[2] = (uint8_t)(((uint64_t)u) >> 40); \
+ ptr[3] = (uint8_t)(((uint64_t)u) >> 32); \
+ ptr[4] = (uint8_t)(((uint64_t)u) >> 24); \
+ ptr[5] = (uint8_t)(((uint64_t)u) >> 16); \
+ ptr[6] = (uint8_t)(((uint64_t)u) >> 8); \
+ ptr[7] = (uint8_t)((uint64_t)u); \
+ } while (0)
+
#define NNI_GET32(ptr, v) \
v = (((uint32_t)((uint8_t)ptr[0])) << 24) + \
(((uint32_t)((uint8_t)ptr[1])) << 16) + \
(((uint32_t)((uint8_t)ptr[2])) << 8) + \
(((uint32_t)(uint8_t)ptr[3]))
+#define NNI_GET64(ptr, v) \
+ v = (((uint64_t)((uint8_t)ptr[0])) << 56) + \
+ (((uint64_t)((uint8_t)ptr[1])) << 48) + \
+ (((uint64_t)((uint8_t)ptr[2])) << 40) + \
+ (((uint64_t)((uint8_t)ptr[3])) << 32) + \
+ (((uint64_t)((uint8_t)ptr[4])) << 24) + \
+ (((uint64_t)((uint8_t)ptr[5])) << 16) + \
+ (((uint64_t)((uint8_t)ptr[6])) << 8) + \
+ (((uint64_t)(uint8_t)ptr[7]))
+
+
#endif // CORE_DEFS_H