diff options
| author | Garrett D'Amore <garrett@damore.org> | 2017-01-03 23:50:12 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2017-01-03 23:50:12 -0800 |
| commit | 856c5c8e2aa4e07b2b628dd194a63ae13dae7ae3 (patch) | |
| tree | 881df2438f89137f014d1706124b58d40115a47d /src/core/defs.h | |
| parent | 7ba8f81d551af515864c2c4ca47edf540a5edd32 (diff) | |
| download | nng-856c5c8e2aa4e07b2b628dd194a63ae13dae7ae3.tar.gz nng-856c5c8e2aa4e07b2b628dd194a63ae13dae7ae3.tar.bz2 nng-856c5c8e2aa4e07b2b628dd194a63ae13dae7ae3.zip | |
Working towards TCP support.
Diffstat (limited to 'src/core/defs.h')
| -rw-r--r-- | src/core/defs.h | 82 |
1 files changed, 47 insertions, 35 deletions
diff --git a/src/core/defs.h b/src/core/defs.h index 395335d6..be7f71f7 100644 --- a/src/core/defs.h +++ b/src/core/defs.h @@ -22,6 +22,7 @@ typedef struct nng_socket nni_sock; typedef struct nng_endpoint nni_ep; typedef struct nng_pipe nni_pipe; typedef struct nng_msg nni_msg; +typedef struct nng_sockaddr nni_sockaddr; // These are our own names. typedef struct nni_tran nni_tran; @@ -31,10 +32,17 @@ typedef struct nni_tran_pipe nni_tran_pipe; typedef struct nni_proto_pipe nni_proto_pipe; typedef struct nni_proto nni_proto; + typedef int nni_signal; // Turnstile/wakeup channel. typedef uint64_t nni_time; // Absolute time (usec). typedef int64_t nni_duration; // Relative time (usec). +// Used by transports for scatter gather I/O. +typedef struct { + void * iov_buf; + size_t iov_len; +} nni_iov; + // Some default timing things. #define NNI_TIME_NEVER ((nni_time) -1) #define NNI_TIME_ZERO ((nni_time) 0) @@ -44,41 +52,45 @@ typedef int64_t nni_duration; // Relative time (usec). #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); \ - } 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])) +#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_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])) +// A few assorted other items. +#define NNI_FLAG_IPV4ONLY 1 #endif // CORE_DEFS_H |
