/* * Copyright (c) 2009-2011, The Regents of the University of California, * through Lawrence Berkeley National Laboratory (subject to receipt of any * required approvals from the U.S. Dept. of Energy). All rights reserved. * * This code is distributed under a BSD style license, see the LICENSE file * for complete information. */ #ifndef __NET_H #define __NET_H int netdial(int domain, int proto, char *local, char *server, int port); int netannounce(int domain, int proto, char *local, int port); int Nread(int fd, char *buf, size_t count, int prot); int Nwrite(int fd, const char *buf, size_t count, int prot) /* __attribute__((hot)) */; int has_sendfile(void); int Nsendfile(int fromfd, int tofd, const char *buf, size_t count) /* __attribute__((hot)) */; int getsock_tcp_mss(int inSock); int set_tcp_options(int sock, int no_delay, int mss); int setnonblocking(int fd); #define NET_SOFTERROR -1 #define NET_HARDERROR -2 unsigned long long htonll(unsigned long long); unsigned long long ntohll(unsigned long long); /* XXX: Need a better check for byte order */ #if BYTE_ORDER == BIG_ENDIAN #define HTONLL(n) (n) #define NTOHLL(n) (n) #else #define HTONLL(n) ((((unsigned long long)(n) & 0xFF) << 56) | \ (((unsigned long long)(n) & 0xFF00) << 40) | \ (((unsigned long long)(n) & 0xFF0000) << 24) | \ (((unsigned long long)(n) & 0xFF000000) << 8) | \ (((unsigned long long)(n) & 0xFF00000000) >> 8) | \ (((unsigned long long)(n) & 0xFF0000000000) >> 24) | \ (((unsigned long long)(n) & 0xFF000000000000) >> 40) | \ (((unsigned long long)(n) & 0xFF00000000000000) >> 56)) #define NTOHLL(n) ((((unsigned long long)(n) & 0xFF) << 56) | \ (((unsigned long long)(n) & 0xFF00) << 40) | \ (((unsigned long long)(n) & 0xFF0000) << 24) | \ (((unsigned long long)(n) & 0xFF000000) << 8) | \ (((unsigned long long)(n) & 0xFF00000000) >> 8) | \ (((unsigned long long)(n) & 0xFF0000000000) >> 24) | \ (((unsigned long long)(n) & 0xFF000000000000) >> 40) | \ (((unsigned long long)(n) & 0xFF00000000000000) >> 56)) #endif #define htonll(n) HTONLL(n) #define ntohll(n) NTOHLL(n) #endif