/*
** Various portability definitions.
**
** @(#)port.h e07@nikhef.nl (Eric Wassenaar) 991328
*/
#if defined(__SVR4) || defined(__svr4__)
#define SVR4
#endif
#if defined(SYSV) || defined(SVR4)
#define SYSV_MALLOC
#define SYSV_MEMSET
#define SYSV_STRCHR
#define SYSV_SETVBUF
#endif
#if defined(WINNT)
#define SYSV_MALLOC
#define SYSV_STRCHR
#define SYSV_SETVBUF
#endif
#if defined(__hpux) || defined(hpux)
#define SYSV_MALLOC
#define SYSV_SETVBUF
#endif
#if defined(sgi)
#define SYSV_MALLOC
#endif
#if defined(linux)
#define SYSV_MALLOC
#endif
#if defined(bsdi) || defined(__bsdi__)
#define SYSV_MALLOC
#endif
#if defined(NeXT)
#define SYSV_MALLOC
#endif
/*
** Distinguish between various BIND releases.
*/
#if defined(RES_PRF_STATS)
#define BIND_49
#else
#define BIND_48
#endif
#if defined(BIND_49) && defined(__BIND)
#define BIND_493
#endif
/*
** Define constants for fixed sizes.
*/
#ifndef INT16SZ
#define INT16SZ 2 /* for systems without 16-bit ints */
#endif
#ifndef INT32SZ
#define INT32SZ 4 /* for systems without 32-bit ints */
#endif
#ifndef INADDRSZ
#define INADDRSZ 4 /* for sizeof(struct inaddr) != 4 */
#endif
#ifndef IPNGSIZE
#define IPNGSIZE 16 /* 128 bit ip v6 address size */
#endif
/*
** The following should depend on existing definitions.
*/
typedef int bool; /* boolean type */
#define TRUE 1
#define FALSE 0
#if defined(BIND_48) || defined(OLD_RES_STATE)
typedef struct state res_state_t;
#else
typedef struct __res_state res_state_t;
#endif
#if defined(BIND_48)
typedef struct rrec rrec_t;
#else
#if defined(BIND_493)
typedef u_char rrec_t;
#else
typedef char rrec_t;
#endif
#endif
#if defined(BIND_493)
typedef u_char qbuf_t;
#else
typedef char qbuf_t;
#endif
#if defined(BIND_493)
typedef char nbuf_t;
#else
typedef u_char nbuf_t;
#endif
#ifndef _IPADDR_T
#if defined(__alpha) || defined(BIND_49)
typedef u_int ipaddr_t;
#else
typedef u_long ipaddr_t;
#endif
#endif
#if defined(apollo) || defined(_BSD_SIGNALS)
typedef int sigtype_t;
#else
typedef void sigtype_t;
#endif
#ifdef SYSV_MALLOC
typedef void ptr_t; /* generic pointer type */
typedef u_int siz_t; /* general size type */
typedef void free_t;
#else
typedef char ptr_t; /* generic pointer type */
typedef u_int siz_t; /* general size type */
typedef int free_t;
#endif
#ifdef SYSV_MEMSET
#define bzero(a,n) (void) memset(a,'\0',n)
#define bcopy(a,b,n) (void) memcpy(b,a,n)
#endif
#ifdef SYSV_STRCHR
#define index strchr
#define rindex strrchr
#endif
#ifdef SYSV_SETVBUF
#define linebufmode(a) (void) setvbuf(a, (char *)NULL, _IOLBF, BUFSIZ)
#else
#define linebufmode(a) (void) setlinebuf(a)
#endif
#ifdef ULTRIX_RESOLV
#define nslist(i) _res.ns_list[i].addr
#else
#define nslist(i) _res.nsaddr_list[i]
#endif
#ifdef fp_nquery
#define pr_query(a,n,f) fp_nquery(a,n,f)
#else
#define pr_query(a,n,f) fp_query(a,f)
#endif
#if defined(sun) && defined(NO_YP_LOOKUP)
#define gethostbyname (struct hostent *)res_gethostbyname
#define gethostbyaddr (struct hostent *)res_gethostbyaddr
#endif
#if defined(SVR4)
#define jmp_buf sigjmp_buf
#define setjmp(e) sigsetjmp(e,1)
#define longjmp(e,n) siglongjmp(e,n)
#endif
/*
** Very specific definitions for certain platforms.
*/
#if defined(WINNT)
#define NO_CONNECTED_DGRAM
#endif
#if defined(WINNT)
#undef linebufmode
#define linebufmode(a) (void) setvbuf(a, (char *)NULL, _IONBF, 0)
#endif
#if defined(WINNT)
#ifndef strcasecmp
#define strcasecmp _stricmp
#endif
#ifndef strncasecmp
#define strncasecmp _strnicmp
#endif
#endif /*WINNT*/
#if defined(WINNT)
#define setalarm(n)
#define setsignal(s,f)
#else
#define setalarm(n) (void) alarm((unsigned int)(n))
#define setsignal(s,f) (void) signal(s,f)
#endif
#if defined(WINNT)
#ifndef errno
#define errno WSAGetLastError()
#endif
#ifndef h_errno
#define h_errno WSAGetLastError()
#endif
#endif /*WINNT*/
#if defined(WINNT)
#define seterrno(n) WSASetLastError(n)
#define seth_errno(n) WSASetLastError(n)
#else
#define seterrno(n) errno = (n)
#define seth_errno(n) h_errno = (n)
#endif
#if defined(WINNT)
#undef EINTR
#define EINTR WSAEINTR
#undef EWOULDBLOCK
#define EWOULDBLOCK WSAEWOULDBLOCK
#undef ETIMEDOUT
#define ETIMEDOUT WSAETIMEDOUT
#undef ECONNRESET
#define ECONNRESET WSAECONNRESET
#undef ECONNREFUSED
#define ECONNREFUSED WSAECONNREFUSED
#undef ENETDOWN
#define ENETDOWN WSAENETDOWN
#undef ENETUNREACH
#define ENETUNREACH WSAENETUNREACH
#undef EHOSTDOWN
#define EHOSTDOWN WSAEHOSTDOWN
#undef EHOSTUNREACH
#define EHOSTUNREACH WSAEHOSTUNREACH
#undef EADDRINUSE
#define EADDRINUSE WSAEADDRINUSE
#endif /*WINNT*/
#if defined(WINNT)
HANDLE hReadWriteEvent;
#endif
#if defined(WINNT) && !defined(__STDC__)
#define __STDC__
#endif
/*
** No prototypes yet.
*/
#define PROTO(TYPES) ()
#if !defined(__STDC__) || defined(apollo)
#define Proto(TYPES) ()
#else
#define Proto(TYPES) TYPES
#endif
#if !defined(__STDC__) || defined(apollo)
#define const
#endif
#if defined(__STDC__) && defined(BIND_49)
#define CONST const
#else
#define CONST
#endif
syntax highlighted by Code2HTML, v. 0.9.1