xref: /iperf/src/net.h (revision f99bd3b2)
1 #ifndef __NET_H
2 #define __NET_H
3 
4 int netdial(int, int, char *, char *, int);
5 int netannounce(int, int, char *, int);
6 int Nwrite(int, void *, int, int);
7 int Nread(int, void *, int, int);
8 int getsock_tcp_mss(int);
9 int set_tcp_options(int, int, int);
10 int setnonblocking(int);
11 
12 unsigned long long htonll(unsigned long long);
13 unsigned long long ntohll(unsigned long long);
14 
15 /* XXX: Need a better check for byte order */
16 #if BYTE_ORDER == BIG_ENDIAN
17 #define HTONLL(n) (n)
18 #define NTOHLL(n) (n)
19 #else
20 #define HTONLL(n) ((((unsigned long long)(n) & 0xFF) << 56) | \
21                    (((unsigned long long)(n) & 0xFF00) << 40) | \
22                    (((unsigned long long)(n) & 0xFF0000) << 24) | \
23                    (((unsigned long long)(n) & 0xFF000000) << 8) | \
24                    (((unsigned long long)(n) & 0xFF00000000) >> 8) | \
25                    (((unsigned long long)(n) & 0xFF0000000000) >> 24) | \
26                    (((unsigned long long)(n) & 0xFF000000000000) >> 40) | \
27                    (((unsigned long long)(n) & 0xFF00000000000000) >> 56))
28 
29 #define NTOHLL(n) ((((unsigned long long)(n) & 0xFF) << 56) | \
30                    (((unsigned long long)(n) & 0xFF00) << 40) | \
31                    (((unsigned long long)(n) & 0xFF0000) << 24) | \
32                    (((unsigned long long)(n) & 0xFF000000) << 8) | \
33                    (((unsigned long long)(n) & 0xFF00000000) >> 8) | \
34                    (((unsigned long long)(n) & 0xFF0000000000) >> 24) | \
35                    (((unsigned long long)(n) & 0xFF000000000000) >> 40) | \
36                    (((unsigned long long)(n) & 0xFF00000000000000) >> 56))
37 #endif
38 
39 #define htonll(n) HTONLL(n)
40 #define ntohll(n) NTOHLL(n)
41 
42 #endif
43 
44