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