aboutsummaryrefslogtreecommitdiff
path: root/src/core/defs.h
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-01-04 02:10:13 -0800
committerGarrett D'Amore <garrett@damore.org>2017-01-04 02:10:13 -0800
commit1d650869f32c56f6d49d898c38f7525191a60bd1 (patch)
tree7a27136068de192a3166ce40ea7a541f68be9d96 /src/core/defs.h
parent856c5c8e2aa4e07b2b628dd194a63ae13dae7ae3 (diff)
downloadnng-1d650869f32c56f6d49d898c38f7525191a60bd1.tar.gz
nng-1d650869f32c56f6d49d898c38f7525191a60bd1.tar.bz2
nng-1d650869f32c56f6d49d898c38f7525191a60bd1.zip
Initial cut at TCP, totally untested beyond compilation.
This also adds checks in the protocols to verify that pipe peers are of the proper protocol.
Diffstat (limited to 'src/core/defs.h')
-rw-r--r--src/core/defs.h77
1 files changed, 44 insertions, 33 deletions
diff --git a/src/core/defs.h b/src/core/defs.h
index be7f71f7..ed2e353f 100644
--- a/src/core/defs.h
+++ b/src/core/defs.h
@@ -52,43 +52,54 @@ typedef struct {
#define NNI_ALLOC_STRUCT(s) nni_alloc(sizeof (*s))
#define NNI_FREE_STRUCT(s) nni_free((s), sizeof (*s))
-#define NNI_PUT32(ptr, u) \
- do { \
- ptr[0] = (uint8_t) (((uint32_t) u) >> 24); \
- ptr[1] = (uint8_t) (((uint32_t) u) >> 16); \
- ptr[2] = (uint8_t) (((uint32_t) u) >> 8); \
- ptr[3] = (uint8_t) ((uint32_t) u); \
- } \
+#define NNI_PUT16(ptr, u) \
+ do { \
+ (ptr)[0] = (uint8_t) (((uint16_t) (u)) >> 8); \
+ (ptr)[0] = (uint8_t) ((uint16_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); \
- } \
+#define NNI_PUT32(ptr, u) \
+ do { \
+ (ptr)[0] = (uint8_t) (((uint32_t) (u)) >> 24); \
+ (ptr)[1] = (uint8_t) (((uint32_t) (u)) >> 16); \
+ (ptr)[2] = (uint8_t) (((uint32_t) (u)) >> 8); \
+ (ptr)[3] = (uint8_t) ((uint32_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]))
+#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_GET16(ptr, v) \
+ v = (((uint32_t) ((uint8_t) (ptr)[0])) << 8) + \
+ (((uint32_t) (uint8_t) (ptr)[1]))
+
+#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]))
// A few assorted other items.
#define NNI_FLAG_IPV4ONLY 1