home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / famapi.zip / INCLUDE.ZIP / LIMITS.H < prev    next >
Text File  |  1992-12-09  |  3KB  |  78 lines

  1. /*
  2.  *        **************************************************************
  3.  *         JdeBP C++ Library Routines      General Public Licence v1.00
  4.  *            Copyright (c) 1991,1992     Jonathan de Boyne Pollard
  5.  *        **************************************************************
  6.  *
  7.  * LIMITS (ANSI) (FREESTANDING)
  8.  *
  9.  */
  10.  
  11. #define MB_LEN_MAX        255                /* Maximum len of MB char    */
  12. #define CHAR_BIT        8                /* Bits in a char            */
  13.  
  14. #define INT_MAX            32767            /* Max of int                */
  15. #define INT_MIN            -32767            /* Min of int                */
  16. #define LONG_MAX        2147483647L        /* Max of long                */
  17. #define LONG_MIN        -2147483647L    /* Min of long                */
  18.  
  19. #define SCHAR_MAX        127                /* Max of signed char        */
  20. #define SCHAR_MIN        -127            /* Min of signed char        */
  21. #define SHRT_MAX        32767            /* Max of short                */
  22. #define SHRT_MIN        -32767            /* Min of short                */
  23.  
  24. #define UCHAR_MAX        255                /* Max of unsigned char        */
  25. #define UINT_MAX        0xffff            /* Max of unsigned int        */
  26. #define ULONG_MAX        0xffffffffUL    /* Max of unsigned long        */
  27. #define USHRT_MAX        0xffff            /* Max of unsigned short    */
  28.  
  29. #if !defined(_CHAR_UNSIGNED) || ('\x80' < '\x00')
  30. #define CHAR_MAX        SCHAR_MAX
  31. #define CHAR_MIN        SCHAR_MIN
  32. #else
  33. #define CHAR_MAX        UCHAR_MAX
  34. #define CHAR_MIN        0
  35. #endif
  36.  
  37. #if _POSIX1_SOURCE > 0
  38.  
  39. //
  40. // POSIX absolute minima of system limits.  MUST be defined as in standard.
  41. //
  42. #define    _POSIX_ARG_MAX        4096
  43. #define    _POSIX_CHILD_MAX    6            /* Will be 0 under MS-DOS. */
  44. #define    _POSIX_LINK_MAX        8            /* Will be 1 under MS-DOS. */
  45. #define    _POSIX_MAX_CANON    255
  46. #define    _POSIX_MAX_INPUT    255            /* WIll be 15 for IBM PC/AT. */
  47. #define    _POSIX_NAME_MAX        14            /* Will be 13 under MS-DOS. */
  48. #define    _POSIX_NGROUPS_MAX    0            /* Netware support */
  49. #define    _POSIX_OPEN_MAX        16
  50. #define    _POSIX_PATH_MAX        255            /* Will be 64/128 MS-DOS/Netware. */
  51. #define    _POSIX_PIPE_BUF        512
  52. #define    _POSIX_STREAM_MAX    8
  53. #define    _POSIX_SSIZE_MAX    32767
  54.  
  55. //
  56. // MUST be defined, but variable at runtime.
  57. //
  58. #define NGROUPS_MAX        256                /* Assume Netware */
  59.  
  60. //
  61. // MUST be defined, and fixed.
  62. //
  63. #define    SSIZE_MAX        32767            /* Relies on <_stddef.h> _SizeT */
  64.  
  65. //
  66. // Defined only if fixed, always but obtainable from {fpath,path,sys}conf()
  67. //
  68. #define    ARG_MAX            32767            /* 32k limit owing to near pointers */
  69. #undef    CHILD_MAX                        /* Unsupported */
  70. #undef    STREAM_MAX                        /* Unsupported */
  71. #undef    OPEN_MAX        20
  72. #define    LINK_MAX        1                /* POSIX minimum is 8 ! */
  73. #undef    MAX_CANON
  74. #undef    MAX_INPUT        15                /* POSIX minimum is 15 ! */
  75. #define    NAME_MAX        13                /* POSIX minimum is 14 ! */
  76. #undef    PATH_MAX                        /* Variable under Netware */
  77. #undef    PIPE_BUF                        /* Unsupported */
  78. #endif