1 /*
   2  * Copyright (c) 2000-2001 Proofpoint, Inc. and its suppliers.
   3  *      All rights reserved.
   4  *
   5  * By using this file, you agree to the terms and conditions set
   6  * forth in the LICENSE file which can be found at the top level of
   7  * the sendmail distribution.
   8  *
   9  *      $Id: limits.h,v 1.7 2013-11-22 20:51:31 ca Exp $
  10  */
  11 
  12 /*
  13 **  <sm/limits.h>
  14 **  This header file is a portability wrapper for <limits.h>.
  15 **  It includes <limits.h>, then it ensures that the following macros
  16 **  from the C 1999 standard for <limits.h> are defined:
  17 **      LLONG_MIN, LLONG_MAX
  18 **      ULLONG_MAX
  19 */
  20 
  21 #ifndef SM_LIMITS_H
  22 # define SM_LIMITS_H
  23 
  24 # include <limits.h>
  25 # include <sm/types.h>
  26 # include <sys/param.h>
  27 
  28 /*
  29 **  The following assumes two's complement binary arithmetic.
  30 */
  31 
  32 # ifndef LLONG_MIN
  33 #  define LLONG_MIN     ((LONGLONG_T)(~(ULLONG_MAX >> 1)))
  34 # endif /* ! LLONG_MIN */
  35 # ifndef LLONG_MAX
  36 #  define LLONG_MAX     ((LONGLONG_T)(ULLONG_MAX >> 1))
  37 # endif /* ! LLONG_MAX */
  38 # ifndef ULLONG_MAX
  39 #  define ULLONG_MAX    ((ULONGLONG_T)(-1))
  40 # endif /* ! ULLONG_MAX */
  41 
  42 /*
  43 **  PATH_MAX is defined by the POSIX standard.  All modern systems
  44 **  provide it.  Older systems define MAXPATHLEN in <sys/param.h> instead.
  45 */
  46 
  47 # ifndef PATH_MAX
  48 #  ifdef MAXPATHLEN
  49 #   define PATH_MAX     MAXPATHLEN
  50 #  else /* MAXPATHLEN */
  51 #   define PATH_MAX     2048
  52 #  endif /* MAXPATHLEN */
  53 # endif /* ! PATH_MAX */
  54 
  55 #endif /* ! SM_LIMITS_H */