File:  [DragonFly] / src / crypto / openssh / Attic / defines.h
Revision 1.1: download - view: text, annotated - select for diffs
Tue Jun 17 02:48:15 2003 UTC (11 years, 5 months ago) by dillon
Branches: MAIN
CVS tags: HEAD, FREEBSD_4_FORK
import from FreeBSD RELENG_4 1.1.1.2.2.2

    1: #ifndef _DEFINES_H
    2: #define _DEFINES_H
    3: 
    4: /* $Id: defines.h,v 1.96 2002/09/26 00:38:48 tim Exp $ */
    5: 
    6: 
    7: /* Constants */
    8: 
    9: #ifndef SHUT_RDWR
   10: enum
   11: {
   12:   SHUT_RD = 0,		/* No more receptions.  */
   13:   SHUT_WR,			/* No more transmissions.  */
   14:   SHUT_RDWR			/* No more receptions or transmissions.  */
   15: };
   16: # define SHUT_RD   SHUT_RD
   17: # define SHUT_WR   SHUT_WR
   18: # define SHUT_RDWR SHUT_RDWR
   19: #endif
   20: 
   21: #ifndef IPTOS_LOWDELAY
   22: # define IPTOS_LOWDELAY          0x10
   23: # define IPTOS_THROUGHPUT        0x08
   24: # define IPTOS_RELIABILITY       0x04
   25: # define IPTOS_LOWCOST           0x02
   26: # define IPTOS_MINCOST           IPTOS_LOWCOST
   27: #endif /* IPTOS_LOWDELAY */
   28: 
   29: #ifndef MAXPATHLEN
   30: # ifdef PATH_MAX
   31: #  define MAXPATHLEN PATH_MAX
   32: # else /* PATH_MAX */
   33: #  define MAXPATHLEN 64 /* Should be safe */
   34: # endif /* PATH_MAX */
   35: #endif /* MAXPATHLEN */
   36: 
   37: #ifndef STDIN_FILENO
   38: # define STDIN_FILENO    0
   39: #endif
   40: #ifndef STDOUT_FILENO
   41: # define STDOUT_FILENO   1
   42: #endif
   43: #ifndef STDERR_FILENO
   44: # define STDERR_FILENO   2
   45: #endif
   46: 
   47: #ifndef NGROUPS_MAX	/* Disable groupaccess if NGROUP_MAX is not set */
   48: #ifdef NGROUPS
   49: #define NGROUPS_MAX NGROUPS
   50: #else
   51: #define NGROUPS_MAX 0
   52: #endif
   53: #endif
   54: 
   55: #ifndef O_NONBLOCK	/* Non Blocking Open */
   56: # define O_NONBLOCK      00004
   57: #endif
   58: 
   59: #ifndef S_ISDIR
   60: # define S_ISDIR(mode)	(((mode) & (_S_IFMT)) == (_S_IFDIR))
   61: #endif /* S_ISDIR */
   62: 
   63: #ifndef S_ISREG 
   64: # define S_ISREG(mode)	(((mode) & (_S_IFMT)) == (_S_IFREG))
   65: #endif /* S_ISREG */
   66: 
   67: #ifndef S_ISLNK
   68: # define S_ISLNK(mode)	(((mode) & S_IFMT) == S_IFLNK)
   69: #endif /* S_ISLNK */
   70: 
   71: #ifndef S_IXUSR
   72: # define S_IXUSR			0000100	/* execute/search permission, */
   73: # define S_IXGRP			0000010	/* execute/search permission, */
   74: # define S_IXOTH			0000001	/* execute/search permission, */
   75: # define _S_IWUSR			0000200	/* write permission, */
   76: # define S_IWUSR			_S_IWUSR	/* write permission, owner */
   77: # define S_IWGRP			0000020	/* write permission, group */
   78: # define S_IWOTH			0000002	/* write permission, other */
   79: # define S_IRUSR			0000400	/* read permission, owner */
   80: # define S_IRGRP			0000040	/* read permission, group */
   81: # define S_IROTH			0000004	/* read permission, other */
   82: # define S_IRWXU			0000700	/* read, write, execute */
   83: # define S_IRWXG			0000070	/* read, write, execute */
   84: # define S_IRWXO			0000007	/* read, write, execute */
   85: #endif /* S_IXUSR */
   86: 
   87: #if !defined(MAP_ANON) && defined(MAP_ANONYMOUS)
   88: #define MAP_ANON MAP_ANONYMOUS
   89: #endif
   90: 
   91: #ifndef MAP_FAILED
   92: # define MAP_FAILED ((void *)-1)
   93: #endif
   94: 
   95: /* *-*-nto-qnx doesn't define this constant in the system headers */
   96: #ifdef MISSING_NFDBITS
   97: # define	NFDBITS (8 * sizeof(unsigned long))
   98: #endif
   99: 
  100: /*
  101: SCO Open Server 3 has INADDR_LOOPBACK defined in rpc/rpc.h but
  102: including rpc/rpc.h breaks Solaris 6
  103: */
  104: #ifndef INADDR_LOOPBACK
  105: #define INADDR_LOOPBACK ((u_long)0x7f000001)
  106: #endif
  107: 
  108: /* Types */
  109: 
  110: /* If sys/types.h does not supply intXX_t, supply them ourselves */
  111: /* (or die trying) */
  112: 
  113: 
  114: #ifndef HAVE_U_INT
  115: typedef unsigned int u_int;
  116: #endif
  117: 
  118: #ifndef HAVE_INTXX_T
  119: # if (SIZEOF_CHAR == 1)
  120: typedef char int8_t;
  121: # else
  122: #  error "8 bit int type not found."
  123: # endif
  124: # if (SIZEOF_SHORT_INT == 2)
  125: typedef short int int16_t;
  126: # else
  127: #  ifdef _UNICOS
  128: #   if (SIZEOF_SHORT_INT == 4)
  129: typedef short int16_t;
  130: #   else
  131: typedef long  int16_t;
  132: #   endif
  133: #  else
  134: #   error "16 bit int type not found."
  135: #  endif /* _UNICOS */
  136: # endif
  137: # if (SIZEOF_INT == 4)
  138: typedef int int32_t;
  139: # else
  140: #  ifdef _UNICOS
  141: typedef long  int32_t;
  142: #  else
  143: #   error "32 bit int type not found."
  144: #  endif /* _UNICOS */
  145: # endif
  146: #endif
  147: 
  148: /* If sys/types.h does not supply u_intXX_t, supply them ourselves */
  149: #ifndef HAVE_U_INTXX_T
  150: # ifdef HAVE_UINTXX_T
  151: typedef uint8_t u_int8_t;
  152: typedef uint16_t u_int16_t;
  153: typedef uint32_t u_int32_t;
  154: # define HAVE_U_INTXX_T 1
  155: # else
  156: #  if (SIZEOF_CHAR == 1)
  157: typedef unsigned char u_int8_t;
  158: #  else
  159: #   error "8 bit int type not found."
  160: #  endif
  161: #  if (SIZEOF_SHORT_INT == 2)
  162: typedef unsigned short int u_int16_t;
  163: #  else
  164: #   ifdef _UNICOS
  165: #    if (SIZEOF_SHORT_INT == 4)
  166: typedef unsigned short u_int16_t;
  167: #    else
  168: typedef unsigned long  u_int16_t;
  169: #    endif
  170: #   else
  171: #    error "16 bit int type not found."
  172: #   endif
  173: #  endif
  174: #  if (SIZEOF_INT == 4)
  175: typedef unsigned int u_int32_t;
  176: #  else
  177: #   ifdef _UNICOS
  178: typedef unsigned long  u_int32_t;
  179: #   else
  180: #    error "32 bit int type not found."
  181: #   endif
  182: #  endif
  183: # endif
  184: #define __BIT_TYPES_DEFINED__
  185: #endif
  186: 
  187: /* 64-bit types */
  188: #ifndef HAVE_INT64_T
  189: # if (SIZEOF_LONG_INT == 8)
  190: typedef long int int64_t;
  191: #   define HAVE_INT64_T 1
  192: # else
  193: #  if (SIZEOF_LONG_LONG_INT == 8)
  194: typedef long long int int64_t;
  195: #   define HAVE_INT64_T 1
  196: #  endif
  197: # endif
  198: #endif
  199: #ifndef HAVE_U_INT64_T
  200: # if (SIZEOF_LONG_INT == 8)
  201: typedef unsigned long int u_int64_t;
  202: #   define HAVE_U_INT64_T 1
  203: # else
  204: #  if (SIZEOF_LONG_LONG_INT == 8)
  205: typedef unsigned long long int u_int64_t;
  206: #   define HAVE_U_INT64_T 1
  207: #  endif
  208: # endif
  209: #endif
  210: #if !defined(HAVE_LONG_LONG_INT) && (SIZEOF_LONG_LONG_INT == 8)
  211: # define HAVE_LONG_LONG_INT 1
  212: #endif
  213: 
  214: #ifndef HAVE_U_CHAR
  215: typedef unsigned char u_char;
  216: # define HAVE_U_CHAR
  217: #endif /* HAVE_U_CHAR */
  218: 
  219: #ifndef SIZE_T_MAX
  220: #define SIZE_T_MAX ULONG_MAX
  221: #endif /* SIZE_T_MAX */
  222: 
  223: #ifndef HAVE_SIZE_T
  224: typedef unsigned int size_t;
  225: # define HAVE_SIZE_T
  226: #endif /* HAVE_SIZE_T */
  227: 
  228: #ifndef HAVE_SSIZE_T
  229: typedef int ssize_t;
  230: # define HAVE_SSIZE_T
  231: #endif /* HAVE_SSIZE_T */
  232: 
  233: #ifndef HAVE_CLOCK_T
  234: typedef long clock_t;
  235: # define HAVE_CLOCK_T
  236: #endif /* HAVE_CLOCK_T */
  237: 
  238: #ifndef HAVE_SA_FAMILY_T
  239: typedef int sa_family_t;
  240: # define HAVE_SA_FAMILY_T
  241: #endif /* HAVE_SA_FAMILY_T */
  242: 
  243: #ifndef HAVE_PID_T
  244: typedef int pid_t;
  245: # define HAVE_PID_T
  246: #endif /* HAVE_PID_T */
  247: 
  248: #ifndef HAVE_SIG_ATOMIC_T
  249: typedef int sig_atomic_t;
  250: # define HAVE_SIG_ATOMIC_T
  251: #endif /* HAVE_SIG_ATOMIC_T */
  252: 
  253: #ifndef HAVE_MODE_T
  254: typedef int mode_t;
  255: # define HAVE_MODE_T
  256: #endif /* HAVE_MODE_T */
  257: 
  258: #if !defined(HAVE_SS_FAMILY_IN_SS) && defined(HAVE___SS_FAMILY_IN_SS)
  259: # define ss_family __ss_family
  260: #endif /* !defined(HAVE_SS_FAMILY_IN_SS) && defined(HAVE_SA_FAMILY_IN_SS) */
  261: 
  262: #ifndef HAVE_SYS_UN_H
  263: struct	sockaddr_un {
  264: 	short	sun_family;		/* AF_UNIX */
  265: 	char	sun_path[108];		/* path name (gag) */
  266: };
  267: #endif /* HAVE_SYS_UN_H */
  268: 
  269: #if defined(BROKEN_SYS_TERMIO_H) && !defined(_STRUCT_WINSIZE)
  270: #define _STRUCT_WINSIZE
  271: struct winsize {
  272:       unsigned short ws_row;          /* rows, in characters */
  273:       unsigned short ws_col;          /* columns, in character */
  274:       unsigned short ws_xpixel;       /* horizontal size, pixels */
  275:       unsigned short ws_ypixel;       /* vertical size, pixels */
  276: };
  277: #endif
  278: 
  279: /* *-*-nto-qnx does not define this type in the system headers */
  280: #ifdef MISSING_FD_MASK
  281:  typedef unsigned long int	fd_mask;
  282: #endif
  283: 
  284: /* Paths */
  285: 
  286: #ifndef _PATH_BSHELL
  287: # define _PATH_BSHELL "/bin/sh"
  288: #endif
  289: #ifndef _PATH_CSHELL
  290: # define _PATH_CSHELL "/bin/csh"
  291: #endif
  292: #ifndef _PATH_SHELLS
  293: # define _PATH_SHELLS "/etc/shells"
  294: #endif
  295: 
  296: #ifdef USER_PATH
  297: # ifdef _PATH_STDPATH
  298: #  undef _PATH_STDPATH
  299: # endif
  300: # define _PATH_STDPATH USER_PATH
  301: #endif
  302: 
  303: #ifndef _PATH_STDPATH
  304: # define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin"
  305: #endif
  306: 
  307: #ifndef _PATH_DEVNULL
  308: # define _PATH_DEVNULL "/dev/null"
  309: #endif
  310: 
  311: #ifndef MAIL_DIRECTORY
  312: # define MAIL_DIRECTORY "/var/spool/mail"
  313: #endif
  314: 
  315: #ifndef MAILDIR
  316: # define MAILDIR MAIL_DIRECTORY
  317: #endif
  318: 
  319: #if !defined(_PATH_MAILDIR) && defined(MAILDIR)
  320: # define _PATH_MAILDIR MAILDIR
  321: #endif /* !defined(_PATH_MAILDIR) && defined(MAILDIR) */
  322: 
  323: #ifndef _PATH_NOLOGIN
  324: # define _PATH_NOLOGIN "/etc/nologin"
  325: #endif
  326: 
  327: /* Define this to be the path of the xauth program. */
  328: #ifdef XAUTH_PATH
  329: #define _PATH_XAUTH XAUTH_PATH
  330: #endif /* XAUTH_PATH */
  331: 
  332: /* derived from XF4/xc/lib/dps/Xlibnet.h */
  333: #ifndef X_UNIX_PATH
  334: #  ifdef __hpux
  335: #    define X_UNIX_PATH "/var/spool/sockets/X11/%u"
  336: #  else
  337: #    define X_UNIX_PATH "/tmp/.X11-unix/X%u"
  338: #  endif
  339: #endif /* X_UNIX_PATH */
  340: #define _PATH_UNIX_X X_UNIX_PATH
  341: 
  342: #ifndef _PATH_TTY
  343: # define _PATH_TTY "/dev/tty"
  344: #endif
  345: 
  346: /* Macros */
  347: 
  348: #if defined(HAVE_LOGIN_GETCAPBOOL) && defined(HAVE_LOGIN_CAP_H)
  349: # define HAVE_LOGIN_CAP
  350: #endif
  351: 
  352: #ifndef MAX
  353: # define MAX(a,b) (((a)>(b))?(a):(b))
  354: # define MIN(a,b) (((a)<(b))?(a):(b))
  355: #endif
  356: 
  357: #ifndef roundup
  358: # define roundup(x, y)   ((((x)+((y)-1))/(y))*(y))
  359: #endif
  360: 
  361: #ifndef timersub
  362: #define timersub(a, b, result)					\
  363:    do {								\
  364:       (result)->tv_sec = (a)->tv_sec - (b)->tv_sec;		\
  365:       (result)->tv_usec = (a)->tv_usec - (b)->tv_usec;		\
  366:       if ((result)->tv_usec < 0) {				\
  367: 	 --(result)->tv_sec;					\
  368: 	 (result)->tv_usec += 1000000;				\
  369:       }								\
  370:    } while (0)
  371: #endif
  372: 
  373: #ifndef __P
  374: # define __P(x) x
  375: #endif
  376: 
  377: #if !defined(IN6_IS_ADDR_V4MAPPED)
  378: # define IN6_IS_ADDR_V4MAPPED(a) \
  379: 	((((u_int32_t *) (a))[0] == 0) && (((u_int32_t *) (a))[1] == 0) && \
  380: 	 (((u_int32_t *) (a))[2] == htonl (0xffff)))
  381: #endif /* !defined(IN6_IS_ADDR_V4MAPPED) */
  382: 
  383: #if !defined(__GNUC__) || (__GNUC__ < 2)
  384: # define __attribute__(x)
  385: #endif /* !defined(__GNUC__) || (__GNUC__ < 2) */
  386: 
  387: /* *-*-nto-qnx doesn't define this macro in the system headers */
  388: #ifdef MISSING_HOWMANY
  389: # define howmany(x,y)	(((x)+((y)-1))/(y))
  390: #endif
  391: 
  392: #ifndef OSSH_ALIGNBYTES
  393: #define OSSH_ALIGNBYTES	(sizeof(int) - 1)
  394: #endif
  395: #ifndef __CMSG_ALIGN
  396: #define	__CMSG_ALIGN(p) (((u_int)(p) + OSSH_ALIGNBYTES) &~ OSSH_ALIGNBYTES)
  397: #endif
  398: 
  399: /* Length of the contents of a control message of length len */
  400: #ifndef CMSG_LEN
  401: #define	CMSG_LEN(len)	(__CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))
  402: #endif
  403: 
  404: /* Length of the space taken up by a padded control message of length len */
  405: #ifndef CMSG_SPACE
  406: #define	CMSG_SPACE(len)	(__CMSG_ALIGN(sizeof(struct cmsghdr)) + __CMSG_ALIGN(len))
  407: #endif
  408: 
  409: /* Function replacement / compatibility hacks */
  410: 
  411: #if !defined(HAVE_GETADDRINFO) && (defined(HAVE_OGETADDRINFO) || defined(HAVE_NGETADDRINFO))
  412: # define HAVE_GETADDRINFO
  413: #endif
  414: 
  415: #ifndef HAVE_GETOPT_OPTRESET
  416: # undef getopt
  417: # undef opterr
  418: # undef optind
  419: # undef optopt
  420: # undef optreset
  421: # undef optarg
  422: # define getopt(ac, av, o)  BSDgetopt(ac, av, o)
  423: # define opterr             BSDopterr
  424: # define optind             BSDoptind
  425: # define optopt             BSDoptopt
  426: # define optreset           BSDoptreset
  427: # define optarg             BSDoptarg
  428: #endif
  429: 
  430: /* In older versions of libpam, pam_strerror takes a single argument */
  431: #ifdef HAVE_OLD_PAM
  432: # define PAM_STRERROR(a,b) pam_strerror((b))
  433: #else
  434: # define PAM_STRERROR(a,b) pam_strerror((a),(b))
  435: #endif
  436: 
  437: #ifdef PAM_SUN_CODEBASE
  438: # define PAM_MSG_MEMBER(msg, n, member) ((*(msg))[(n)].member)
  439: #else
  440: # define PAM_MSG_MEMBER(msg, n, member) ((msg)[(n)]->member)
  441: #endif
  442: 
  443: #if defined(BROKEN_GETADDRINFO) && defined(HAVE_GETADDRINFO)
  444: # undef HAVE_GETADDRINFO
  445: #endif
  446: #if defined(BROKEN_GETADDRINFO) && defined(HAVE_FREEADDRINFO)
  447: # undef HAVE_FREEADDRINFO
  448: #endif
  449: #if defined(BROKEN_GETADDRINFO) && defined(HAVE_GAI_STRERROR)
  450: # undef HAVE_GAI_STRERROR
  451: #endif
  452: 
  453: #if !defined(HAVE_MEMMOVE) && defined(HAVE_BCOPY)
  454: # define memmove(s1, s2, n) bcopy((s2), (s1), (n))
  455: #endif /* !defined(HAVE_MEMMOVE) && defined(HAVE_BCOPY) */
  456: 
  457: #if defined(HAVE_VHANGUP) && !defined(HAVE_DEV_PTMX)
  458: #  define USE_VHANGUP
  459: #endif /* defined(HAVE_VHANGUP) && !defined(HAVE_DEV_PTMX) */
  460: 
  461: #ifndef GETPGRP_VOID
  462: # define getpgrp() getpgrp(0)
  463: #endif
  464: 
  465: /* OPENSSL_free() is Free() in versions before OpenSSL 0.9.6 */
  466: #if !defined(OPENSSL_VERSION_NUMBER) || (OPENSSL_VERSION_NUMBER < 0x0090600f)
  467: # define OPENSSL_free(x) Free(x)
  468: #endif
  469: 
  470: #if !defined(HAVE___func__) && defined(HAVE___FUNCTION__)
  471: #  define __func__ __FUNCTION__
  472: #elif !defined(HAVE___func__)
  473: #  define __func__ ""
  474: #endif
  475: 
  476: /*
  477:  * Define this to use pipes instead of socketpairs for communicating with the
  478:  * client program.  Socketpairs do not seem to work on all systems.
  479:  *
  480:  * configure.ac sets this for a few OS's which are known to have problems
  481:  * but you may need to set it yourself
  482:  */
  483: /* #define USE_PIPES 1 */
  484: 
  485: /**
  486:  ** login recorder definitions
  487:  **/
  488: 
  489: /* FIXME: put default paths back in */
  490: #ifndef UTMP_FILE
  491: #  ifdef _PATH_UTMP
  492: #    define UTMP_FILE _PATH_UTMP
  493: #  else
  494: #    ifdef CONF_UTMP_FILE
  495: #      define UTMP_FILE CONF_UTMP_FILE
  496: #    endif
  497: #  endif
  498: #endif
  499: #ifndef WTMP_FILE
  500: #  ifdef _PATH_WTMP
  501: #    define WTMP_FILE _PATH_WTMP
  502: #  else
  503: #    ifdef CONF_WTMP_FILE
  504: #      define WTMP_FILE CONF_WTMP_FILE
  505: #    endif
  506: #  endif
  507: #endif
  508: /* pick up the user's location for lastlog if given */
  509: #ifndef LASTLOG_FILE
  510: #  ifdef _PATH_LASTLOG
  511: #    define LASTLOG_FILE _PATH_LASTLOG
  512: #  else
  513: #    ifdef CONF_LASTLOG_FILE
  514: #      define LASTLOG_FILE CONF_LASTLOG_FILE
  515: #    endif
  516: #  endif
  517: #endif
  518: 
  519: 
  520: /* The login() library function in libutil is first choice */
  521: #if defined(HAVE_LOGIN) && !defined(DISABLE_LOGIN)
  522: #  define USE_LOGIN
  523: 
  524: #else
  525: /* Simply select your favourite login types. */
  526: /* Can't do if-else because some systems use several... <sigh> */
  527: #  if defined(UTMPX_FILE) && !defined(DISABLE_UTMPX)
  528: #    define USE_UTMPX
  529: #  endif
  530: #  if defined(UTMP_FILE) && !defined(DISABLE_UTMP)
  531: #    define USE_UTMP
  532: #  endif
  533: #  if defined(WTMPX_FILE) && !defined(DISABLE_WTMPX)
  534: #    define USE_WTMPX
  535: #  endif
  536: #  if defined(WTMP_FILE) && !defined(DISABLE_WTMP)
  537: #    define USE_WTMP
  538: #  endif
  539: 
  540: #endif
  541: 
  542: /* I hope that the presence of LASTLOG_FILE is enough to detect this */
  543: #if defined(LASTLOG_FILE) && !defined(DISABLE_LASTLOG)
  544: #  define USE_LASTLOG
  545: #endif
  546: 
  547: /** end of login recorder definitions */
  548: 
  549: #endif /* _DEFINES_H */