X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/05bf9bfc237231a3d10e8f160a9037efdcec70f3..a3d09832c69a1b261d0e1f1fc61d4b14ddd5f4a4:/tcpdump-stdinc.h diff --git a/tcpdump-stdinc.h b/tcpdump-stdinc.h index 1e5fc3a9..d971341c 100644 --- a/tcpdump-stdinc.h +++ b/tcpdump-stdinc.h @@ -27,9 +27,6 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (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.18 2007-11-24 18:13:33 mcr Exp $ (LBL) */ /* @@ -60,17 +57,12 @@ #endif #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__ @@ -95,10 +87,6 @@ extern int inet_aton (const char *cp, struct in_addr *addr); #define INET6_ADDRSTRLEN 46 #endif -#ifndef toascii -#define toascii(c) ((c) & 0x7f) -#endif - #ifndef caddr_t typedef char* caddr_t; #endif /* caddr_t */ @@ -173,7 +161,11 @@ typedef char* caddr_t; * Note: this also requires that padding be put into the structure, * at least for compilers where it's implemented as __attribute__((packed)). */ +#if defined(_MSC_VER) && defined(UNALIGNED) +/* MSVC may have its own macro defined with the same name and purpose. */ +#else #define UNALIGNED __attribute__((packed)) +#endif #if defined(WIN32) || defined(MSDOS) #define FOPEN_READ_TXT "rt" @@ -187,7 +179,7 @@ typedef char* caddr_t; #define FOPEN_WRITE_BIN FOPEN_WRITE_TXT #endif -#if defined(__GNUC__) && defined(__i386__) && !defined(__APPLE__) && !defined(__ntohl) +#if defined(__GNUC__) && defined(__i386__) && !defined(__APPLE__) && !defined(__ntohl) #undef ntohl #undef ntohs #undef htonl @@ -230,4 +222,57 @@ typedef char* caddr_t; #define FALSE 0 #endif +/* + * The Apple deprecation workaround macros below were adopted from the + * FreeRADIUS server code under permission of Alan DeKok and Arran Cudbard-Bell. + */ + +#define XSTRINGIFY(x) #x + +/* + * Macros for controlling warnings in GCC >= 4.2 and clang >= 2.8 + */ +#define DIAG_JOINSTR(x,y) XSTRINGIFY(x ## y) +#define DIAG_DO_PRAGMA(x) _Pragma (#x) + +#if defined(__GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 402 +# define DIAG_PRAGMA(x) DIAG_DO_PRAGMA(GCC diagnostic x) +# if ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406 +# define DIAG_OFF(x) DIAG_PRAGMA(push) DIAG_PRAGMA(ignored DIAG_JOINSTR(-W,x)) +# define DIAG_ON(x) DIAG_PRAGMA(pop) +# else +# define DIAG_OFF(x) DIAG_PRAGMA(ignored DIAG_JOINSTR(-W,x)) +# define DIAG_ON(x) DIAG_PRAGMA(warning DIAG_JOINSTR(-W,x)) +# endif +#elif defined(__clang__) && ((__clang_major__ * 100) + __clang_minor__ >= 208) +# define DIAG_PRAGMA(x) DIAG_DO_PRAGMA(clang diagnostic x) +# define DIAG_OFF(x) DIAG_PRAGMA(push) DIAG_PRAGMA(ignored DIAG_JOINSTR(-W,x)) +# define DIAG_ON(x) DIAG_PRAGMA(pop) +#else +# define DIAG_OFF(x) +# define DIAG_ON(x) +#endif + +/* + * For dealing with APIs which are only deprecated in OSX (like the OpenSSL API) + */ +#ifdef __APPLE__ +# define USES_APPLE_DEPRECATED_API DIAG_OFF(deprecated-declarations) +# define USES_APPLE_RST DIAG_ON(deprecated-declarations) +#else +# define USES_APPLE_DEPRECATED_API +# define USES_APPLE_RST +#endif + +/* + * end of Apple deprecation workaround macros + */ + +#ifndef min +#define min(a,b) ((a)>(b)?(b):(a)) +#endif +#ifndef max +#define max(a,b) ((b)>(a)?(b):(a)) +#endif + #endif /* tcpdump_stdinc_h */