X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/5a2794d55e7a180e56c981ace81f80aac3ae8aaf..bae81fc719586ad67dae531d7465aed380d4538d:/tcpdump-stdinc.h diff --git a/tcpdump-stdinc.h b/tcpdump-stdinc.h index 2663d60f..606f7990 100644 --- a/tcpdump-stdinc.h +++ b/tcpdump-stdinc.h @@ -28,6 +28,8 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * + * + * @(#) $Header: /tcpdump/master/tcpdump/tcpdump-stdinc.h,v 1.16 2005-07-09 21:06:04 risso Exp $ (LBL) */ /* @@ -44,22 +46,43 @@ #include #include +#include #include "bittypes.h" #include #include #include -#include "IP6_misc.h" #include +#include +#include /* in wpcap's Win32/include */ + +#if !defined(__MINGW32__) && !defined(__WATCOMC__) +#undef toascii +#define isascii __isascii +#define toascii __toascii +#define stat _stat +#define open _open +#define fstat _fstat +#define read _read +#define close _close +#define O_RDONLY _O_RDONLY + +typedef short ino_t; +#endif /* __MINGW32__ */ #ifdef __MINGW32__ #include -int* _errno(); -#define errno (*_errno()) +#endif -#define INET_ADDRSTRLEN 16 -#define INET6_ADDRSTRLEN 46 +/* Protos for missing/x.c functions (ideally + * should be used, but it clashes with ). + */ +extern const char *inet_ntop (int, const void *, char *, size_t); +extern int inet_pton (int, const char *, void *); +extern int inet_aton (const char *cp, struct in_addr *addr); -#endif /* __MINGW32__ */ +#ifndef INET6_ADDRSTRLEN +#define INET6_ADDRSTRLEN 46 +#endif #ifndef toascii #define toascii(c) ((c) & 0x7f) @@ -71,29 +94,25 @@ typedef char* caddr_t; #define MAXHOSTNAMELEN 64 #define NI_MAXHOST 1025 -#define IPPROTO_EGP 8 /* Exterior Gateway Protocol */ #define snprintf _snprintf #define vsnprintf _vsnprintf #define RETSIGTYPE void -#if !defined(__MINGW32__) && !defined(__WATCOMC__) -#undef toascii -#define isascii __isascii -#define toascii __toascii -#define stat _stat -#define open _open -#define fstat _fstat -#define read _read -#define O_RDONLY _O_RDONLY - -typedef short ino_t; -#endif /* __MINGW32__ */ - #else /* WIN32 */ #include #include #include +#if HAVE_INTTYPES_H +#include +#else +#if HAVE_STDINT_H +#include +#endif +#endif +#ifdef HAVE_SYS_BITYPES_H +#include +#endif #include #include /* concession to AIX */ #include @@ -124,4 +143,39 @@ typedef short ino_t; #define FOPEN_WRITE_BIN FOPEN_WRITE_TXT #endif +#if defined(__GNUC__) && defined(__i386__) && !defined(__ntohl) + #undef ntohl + #undef ntohs + #undef htonl + #undef htons + + extern __inline__ unsigned long __ntohl (unsigned long x); + extern __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) + + extern __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); + } + + extern __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 + #endif /* tcpdump_stdinc_h */