diff options
| author | Garrett D'Amore <garrett@damore.org> | 2017-01-02 23:09:54 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2017-01-02 23:09:54 -0800 |
| commit | 7ba8f81d551af515864c2c4ca47edf540a5edd32 (patch) | |
| tree | 014883550e88d527d9b520658c98c7136cfa955b /src/core | |
| parent | 1c54bc5674a54d84112da5191c28a745d448c816 (diff) | |
| download | nng-7ba8f81d551af515864c2c4ca47edf540a5edd32.tar.gz nng-7ba8f81d551af515864c2c4ca47edf540a5edd32.tar.bz2 nng-7ba8f81d551af515864c2c4ca47edf540a5edd32.zip | |
Add NNI_PUT64 and NNI_GET64.
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/defs.h | 23 |
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 |
