diff options
author | rpaulo <rpaulo@FreeBSD.org> | 2010-10-28 19:06:17 +0000 |
---|---|---|
committer | rpaulo <rpaulo@FreeBSD.org> | 2010-10-28 19:06:17 +0000 |
commit | 1e8ad3bd802d66bed71b4c6405ff5d801a913e4a (patch) | |
tree | df5e0d876c3ec2ff0e3d9c6795cb5c1e20b7d5c4 /contrib/tcpdump/tcpdump-stdinc.h | |
parent | 7ab661360c2131496bd3c111b5b3b2462fe3d2be (diff) | |
parent | 5f4de8e61a87fc21b6ffecf7ef9444827c09ee69 (diff) | |
download | FreeBSD-src-1e8ad3bd802d66bed71b4c6405ff5d801a913e4a.zip FreeBSD-src-1e8ad3bd802d66bed71b4c6405ff5d801a913e4a.tar.gz |
Merge tcpdump-4.1.1.
Diffstat (limited to 'contrib/tcpdump/tcpdump-stdinc.h')
-rw-r--r-- | contrib/tcpdump/tcpdump-stdinc.h | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/contrib/tcpdump/tcpdump-stdinc.h b/contrib/tcpdump/tcpdump-stdinc.h index 5b10ef8..c437cc1 100644 --- a/contrib/tcpdump/tcpdump-stdinc.h +++ b/contrib/tcpdump/tcpdump-stdinc.h @@ -29,8 +29,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * - * $FreeBSD$ - * @(#) $Header: /tcpdump/master/tcpdump/tcpdump-stdinc.h,v 1.17 2006-05-19 17:55:34 hannes Exp $ (LBL) + * @(#) $Header: /tcpdump/master/tcpdump/tcpdump-stdinc.h,v 1.18 2007-11-24 18:13:33 mcr Exp $ (LBL) */ /* @@ -56,6 +55,10 @@ #include <sys/types.h> #include <net/netdb.h> /* in wpcap's Win32/include */ +#ifndef NBBY +#define NBBY 8 +#endif + #if !defined(__MINGW32__) && !defined(__WATCOMC__) #undef toascii #define isascii __isascii @@ -144,6 +147,37 @@ typedef char* caddr_t; #define FOPEN_WRITE_BIN FOPEN_WRITE_TXT #endif +#if defined(__GNUC__) && defined(__i386__) && !defined(__ntohl) + #undef ntohl + #undef ntohs + #undef htonl + #undef htons + + static __inline__ unsigned long __ntohl (unsigned long x); + static __inline__ unsigned short __ntohs (unsigned short x); + + #define ntohl(x) __ntohl(x) + #define ntohs(x) __ntohs(x) + #define htonl(x) __ntohl(x) + #define htons(x) __ntohs(x) + + static __inline__ unsigned long __ntohl (unsigned long x) + { + __asm__ ("xchgb %b0, %h0\n\t" /* swap lower bytes */ + "rorl $16, %0\n\t" /* swap words */ + "xchgb %b0, %h0" /* swap higher bytes */ + : "=q" (x) : "0" (x)); + return (x); + } + + static __inline__ unsigned short __ntohs (unsigned short x) + { + __asm__ ("xchgb %b0, %h0" /* swap bytes */ + : "=q" (x) : "0" (x)); + return (x); + } +#endif + #ifndef INET_ADDRSTRLEN #define INET_ADDRSTRLEN 16 #endif |