The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/include/limits.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* The <limits.h> header defines some basic sizes, both of the language types 
    2  * (e.g., the number of bits in an integer), and of the operating system (e.g.
    3  * the number of characters in a file name.
    4  */
    5 
    6 #ifndef _LIMITS_H
    7 #define _LIMITS_H
    8 
    9 /* Definitions about chars (8 bits in MINIX, and signed). */
   10 #define CHAR_BIT           8    /* # bits in a char */
   11 #define CHAR_MIN        -128    /* minimum value of a char */
   12 #define CHAR_MAX         127    /* maximum value of a char */
   13 #define SCHAR_MIN       -128    /* minimum value of a signed char */
   14 #define SCHAR_MAX        127    /* maximum value of a signed char */
   15 #define UCHAR_MAX        255    /* maximum value of an unsigned char */
   16 #define MB_LEN_MAX         1    /* maximum length of a multibyte char */
   17 
   18 /* Definitions about shorts (16 bits in MINIX). */
   19 #define SHRT_MIN  (-32767-1)    /* minimum value of a short */
   20 #define SHRT_MAX       32767    /* maximum value of a short */
   21 #define USHRT_MAX     0xFFFF    /* maximum value of unsigned short */
   22 
   23 /* _EM_WSIZE is a compiler-generated symbol giving the word size in bytes. */
   24 #if _EM_WSIZE == 2
   25 #define INT_MIN   (-32767-1)    /* minimum value of a 16-bit int */
   26 #define INT_MAX        32767    /* maximum value of a 16-bit int */
   27 #define UINT_MAX      0xFFFF    /* maximum value of an unsigned 16-bit int */
   28 #endif
   29 
   30 #if _EM_WSIZE == 4
   31 #define INT_MIN (-2147483647-1) /* minimum value of a 32-bit int */
   32 #define INT_MAX   2147483647    /* maximum value of a 32-bit int */
   33 #define UINT_MAX  0xFFFFFFFF    /* maximum value of an unsigned 32-bit int */
   34 #endif
   35 
   36 /*Definitions about longs (32 bits in MINIX). */
   37 #define LONG_MIN (-2147483647L-1)/* minimum value of a long */
   38 #define LONG_MAX  2147483647L   /* maximum value of a long */
   39 #define ULONG_MAX 0xFFFFFFFFL   /* maximum value of an unsigned long */
   40 
   41 #include <sys/dir.h>
   42 
   43 /* Minimum sizes required by the POSIX P1003.1 standard (Table 2-3). */
   44 #ifdef _POSIX_SOURCE            /* these are only visible for POSIX */
   45 #define _POSIX_ARG_MAX    4096  /* exec() may have 4K worth of args */
   46 #define _POSIX_CHILD_MAX     6  /* a process may have 6 children */
   47 #define _POSIX_LINK_MAX      8  /* a file may have 8 links */
   48 #define _POSIX_MAX_CANON   255  /* size of the canonical input queue */
   49 #define _POSIX_MAX_INPUT   255  /* you can type 255 chars ahead */
   50 #define _POSIX_NAME_MAX DIRSIZ  /* a file name may have 14 chars */
   51 #define _POSIX_NGROUPS_MAX   0  /* supplementary group IDs are optional */
   52 #define _POSIX_OPEN_MAX     16  /* a process may have 16 files open */
   53 #define _POSIX_PATH_MAX    255  /* a pathname may contain 255 chars */
   54 #define _POSIX_PIPE_BUF    512  /* pipes writes of 512 bytes must be atomic */
   55 #define _POSIX_STREAM_MAX    8  /* at least 8 FILEs can be open at once */
   56 #define _POSIX_TZNAME_MAX    3  /* time zone names can be at least 3 chars */
   57 #define _POSIX_SSIZE_MAX 32767  /* read() must support 32767 byte reads */
   58 
   59 /* Values actually implemented by MINIX (Tables 2-4, 2-5, 2-6, and 2-7). */
   60 /* Some of these old names had better be defined when not POSIX. */
   61 #define _NO_LIMIT          100  /* arbitrary number; limit not enforced */
   62 
   63 #define NGROUPS_MAX          0  /* supplemental group IDs not available */
   64 #if _EM_WSIZE > 2
   65 #define ARG_MAX          16384  /* # bytes of args + environ for exec() */
   66 #else
   67 #define ARG_MAX           4096  /* args + environ on small machines */
   68 #endif
   69 #define CHILD_MAX    _NO_LIMIT  /* MINIX does not limit children */
   70 #define OPEN_MAX            20  /* # open files a process may have */
   71 #if 0                   /* V1 file system */
   72 #define LINK_MAX      CHAR_MAX  /* # links a file may have */
   73 #else                   /* V2 or better file system */
   74 #define LINK_MAX      SHRT_MAX  /* # links a file may have */
   75 #endif
   76 #define MAX_CANON          255  /* size of the canonical input queue */
   77 #define MAX_INPUT          255  /* size of the type-ahead buffer */
   78 #define NAME_MAX        DIRSIZ  /* # chars in a file name */
   79 #define PATH_MAX           255  /* # chars in a path name */
   80 #define PIPE_BUF          7168  /* # bytes in atomic write to a pipe */
   81 #define STREAM_MAX          20  /* must be the same as FOPEN_MAX in stdio.h */
   82 #define TZNAME_MAX           3  /* maximum bytes in a time zone name is 3 */
   83 #define SSIZE_MAX        32767  /* max defined byte count for read() */
   84 
   85 #endif /* _POSIX_SOURCE */
   86 
   87 #endif /* _LIMITS_H */

Cache object: e5c6fe40a994128bffd7cbc300d3d62d


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.