Print this page
    
OS-3752 Increase IOV_MAX to at least 1024
    
      
        | Split | 
	Close | 
      
      | Expand all | 
      | Collapse all | 
    
    
          --- old/usr/src/head/limits.h
          +++ new/usr/src/head/limits.h
   1    1  /*
   2    2   * CDDL HEADER START
   3    3   *
   4    4   * The contents of this file are subject to the terms of the
   5    5   * Common Development and Distribution License (the "License").
   6    6   * You may not use this file except in compliance with the License.
   7    7   *
   8    8   * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9    9   * or http://www.opensolaris.org/os/licensing.
  10   10   * See the License for the specific language governing permissions
  11   11   * and limitations under the License.
  12   12   *
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  
    | 
      ↓ open down ↓ | 
    16 lines elided | 
    
      ↑ open up ↑ | 
  
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22   22  /*
  23   23   * Copyright (c) 2013 Gary Mills
  24   24   *
  25   25   * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
  26   26   * Use is subject to license terms.
       27 + * Copyright 2015 Joyent, Inc.  All rights reserved.
  27   28   */
  28   29  
  29   30  /*      Copyright (c) 1988 AT&T */
  30   31  /*        All Rights Reserved   */
  31   32  
  32   33  
  33   34  #ifndef _LIMITS_H
  34   35  #define _LIMITS_H
  35   36  
  36   37  #include <sys/feature_tests.h>
  37   38  #include <sys/isa_defs.h>
  38   39  #include <iso/limits_iso.h>
       40 +#include <sys/limits.h>
  39   41  
  40   42  /*
  41   43   * Include fixed width type limits as proposed by the ISO/JTC1/SC22/WG14 C
  42   44   * committee's working draft for the revision of the current ISO C standard,
  43   45   * ISO/IEC 9899:1990 Programming language - C.  These are not currently
  44   46   * required by any standard but constitute a useful, general purpose set
  45   47   * of type definitions and limits which is namespace clean with respect to
  46   48   * all standards.
  47   49   */
  48   50  #if defined(__EXTENSIONS__) || !defined(_STRICT_STDC) || \
  49   51          defined(__XOPEN_OR_POSIX)
  50   52  #include <sys/int_limits.h>
  51   53  #endif
  52   54  
  53   55  #ifdef  __cplusplus
  54   56  extern "C" {
  55   57  #endif
  56   58  
  57   59  #if defined(__EXTENSIONS__) || !defined(_STRICT_STDC) || \
  58   60          defined(__XOPEN_OR_POSIX)
  59   61  
  60   62  #define SSIZE_MAX       LONG_MAX        /* max value of an "ssize_t" */
  61   63  
  62   64  /*
  63   65   * ARG_MAX is calculated as follows:
  64   66   * NCARGS - space for other stuff on initial stack
  65   67   * like aux vectors, saved registers, etc..
  66   68   */
  67   69  #define _ARG_MAX32      1048320 /* max length of args to exec 32-bit program */
  68   70  #define _ARG_MAX64      2096640 /* max length of args to exec 64-bit program */
  69   71  #ifdef  _LP64
  70   72  #define ARG_MAX         _ARG_MAX64      /* max length of arguments to exec */
  71   73  #else   /* _LP64 */
  72   74  #define ARG_MAX         _ARG_MAX32      /* max length of arguments to exec */
  73   75  #endif  /* _LP64 */
  74   76  
  75   77  #ifndef MAX_CANON
  76   78  #define MAX_CANON       256     /* max bytes in line for canonical processing */
  77   79  #endif
  78   80  
  79   81  #ifndef MAX_INPUT
  80   82  #define MAX_INPUT       512     /* max size of a char input buffer */
  81   83  #endif
  82   84  
  83   85  #define NGROUPS_MAX     16      /* max number of groups for a user */
  84   86  
  85   87  #ifndef PATH_MAX
  86   88  #define PATH_MAX        1024    /* max # of characters in a path name */
  87   89  #endif
  88   90  
  89   91  #define SYMLINK_MAX     1024    /* max # of characters a symlink can contain */
  90   92  
  91   93  #define PIPE_BUF        5120    /* max # bytes atomic in write to a pipe */
  92   94  
  93   95  #ifndef TMP_MAX
  94   96  #define TMP_MAX         17576   /* 26 * 26 * 26 */
  95   97  #endif
  96   98  
  97   99  /*
  98  100   * POSIX conformant definitions - An implementation may define
  99  101   * other symbols which reflect the actual implementation. Alternate
 100  102   * definitions may not be as restrictive as the POSIX definitions.
 101  103   */
 102  104  #define _POSIX_AIO_LISTIO_MAX       2
 103  105  #define _POSIX_AIO_MAX              1
 104  106  #define _POSIX_ARG_MAX           4096
 105  107  #ifdef _XPG6
 106  108  #define _POSIX_CHILD_MAX           25
 107  109  #else
 108  110  #define _POSIX_CHILD_MAX            6   /* POSIX.1-1990 default */
 109  111  #endif
 110  112  #define _POSIX_CLOCKRES_MIN     20000000
 111  113  #define _POSIX_DELAYTIMER_MAX      32
 112  114  #define _POSIX_LINK_MAX             8
 113  115  #define _POSIX_MAX_CANON          255
 114  116  #define _POSIX_MAX_INPUT          255
 115  117  #define _POSIX_MQ_OPEN_MAX          8
 116  118  #define _POSIX_MQ_PRIO_MAX         32
 117  119  #define _POSIX_NAME_MAX            14
 118  120  #ifdef _XPG6
 119  121  #define _POSIX_NGROUPS_MAX          8
 120  122  #define _POSIX_OPEN_MAX            20
 121  123  #define _POSIX_PATH_MAX           256
 122  124  #else                                   /* POSIX.1-1990 defaults */
 123  125  #define _POSIX_NGROUPS_MAX          0
 124  126  #define _POSIX_OPEN_MAX            16
 125  127  #define _POSIX_PATH_MAX           255
 126  128  #endif
 127  129  #define _POSIX_PIPE_BUF           512
 128  130  #define _POSIX_RTSIG_MAX            8
 129  131  #define _POSIX_SEM_NSEMS_MAX      256
 130  132  #define _POSIX_SEM_VALUE_MAX    32767
 131  133  #define _POSIX_SIGQUEUE_MAX        32
 132  134  #define _POSIX_SSIZE_MAX        32767
 133  135  #define _POSIX_STREAM_MAX           8
 134  136  #define _POSIX_TIMER_MAX           32
 135  137  #ifdef _XPG6
 136  138  #define _POSIX_TZNAME_MAX           6
 137  139  #else
 138  140  #define _POSIX_TZNAME_MAX           3   /* POSIX.1-1990 default */
 139  141  #endif
 140  142  /* POSIX.1c conformant */
 141  143  #define _POSIX_LOGIN_NAME_MAX                   9
 142  144  #define _POSIX_THREAD_DESTRUCTOR_ITERATIONS     4
 143  145  #define _POSIX_THREAD_KEYS_MAX                  128
 144  146  #define _POSIX_THREAD_THREADS_MAX               64
 145  147  #define _POSIX_TTY_NAME_MAX                     9
 146  148  /* UNIX 03 conformant */
 147  149  #define _POSIX_HOST_NAME_MAX                    255
 148  150  #define _POSIX_RE_DUP_MAX                       255
 149  151  #define _POSIX_SYMLINK_MAX                      255
 150  152  #define _POSIX_SYMLOOP_MAX                      8
 151  153  
 152  154  /*
 153  155   * POSIX.2 and XPG4-XSH4 conformant definitions
 154  156   */
 155  157  
 156  158  #define _POSIX2_BC_BASE_MAX               99
 157  159  #define _POSIX2_BC_DIM_MAX              2048
 158  160  #define _POSIX2_BC_SCALE_MAX              99
 159  161  #define _POSIX2_BC_STRING_MAX           1000
 160  162  #define _POSIX2_COLL_WEIGHTS_MAX           2
 161  163  #define _POSIX2_EXPR_NEST_MAX             32
 162  164  #define _POSIX2_LINE_MAX                2048
 163  165  #define _POSIX2_RE_DUP_MAX               255
 164  166  /* UNIX 03 conformant */
 165  167  #define _POSIX2_CHARCLASS_NAME_MAX        14
 166  168  
 167  169  #define BC_BASE_MAX             _POSIX2_BC_BASE_MAX
 168  170  #define BC_DIM_MAX              _POSIX2_BC_DIM_MAX
 169  171  #define BC_SCALE_MAX            _POSIX2_BC_SCALE_MAX
 170  172  #define BC_STRING_MAX           _POSIX2_BC_STRING_MAX
 171  173  #define COLL_WEIGHTS_MAX        10
 172  174  #define EXPR_NEST_MAX           _POSIX2_EXPR_NEST_MAX
 173  175  #define LINE_MAX                _POSIX2_LINE_MAX
 174  176  #if !defined(_XPG6)
 175  177  #define RE_DUP_MAX              _POSIX2_RE_DUP_MAX
 176  178  #else
 177  179  #define RE_DUP_MAX              _POSIX_RE_DUP_MAX
 178  180  #endif /* !defined(_XPG6) */
 179  181  
 180  182  #endif /* defined(__EXTENSIONS__) || !defined(_STRICT_STDC) ... */
 181  183  
 182  184  #if defined(__EXTENSIONS__) || \
 183  185          (!defined(_STRICT_STDC) && !defined(_POSIX_C_SOURCE)) || \
 184  186          defined(_XOPEN_SOURCE)
 185  187  
 186  188  /*
 187  189   * For dual definitions for PASS_MAX and sysconf.c
 188  190   */
 189  191  #define _PASS_MAX_XPG   8       /* old standards PASS_MAX */
 190  192  #define _PASS_MAX       256     /* modern Solaris PASS_MAX */
 191  193  
 192  194  #if defined(_XPG3) && !defined(_XPG6)
 193  195  #define PASS_MAX        _PASS_MAX_XPG   /* max # of characters in a password */
 194  196  #else   /* XPG6 or just Solaris */
 195  197  #define PASS_MAX        _PASS_MAX       /* max # of characters in a password */
 196  198  #endif  /* defined(_XPG3) && !defined(_XPG6) */
 197  199  
 198  200  #define CHARCLASS_NAME_MAX      _POSIX2_CHARCLASS_NAME_MAX
 199  201  
 200  202  #define NL_ARGMAX       9       /* max value of "digit" in calls to the */
 201  203                                  /* NLS printf() and scanf() */
 202  204  #define NL_LANGMAX      14      /* max # of bytes in a LANG name */
 203  205  #define NL_MSGMAX       32767   /* max message number */
 204  206  #define NL_NMAX         1       /* max # bytes in N-to-1 mapping characters */
 205  207  #define NL_SETMAX       255     /* max set number */
 206  208  #define NL_TEXTMAX      2048    /* max set number */
 207  209  #define NZERO           20      /* default process priority */
 208  210  
 209  211  #define WORD_BIT        32      /* # of bits in a "word" or "int" */
 210  212  #if defined(_LP64)
 211  213  #define LONG_BIT        64      /* # of bits in a "long" */
 212  214  #else   /* _ILP32 */
 213  215  #define LONG_BIT        32      /* # of bits in a "long" */
 214  216  #endif
 215  217  
 216  218  /* Marked as LEGACY in SUSv2 and removed in UNIX 03 */
 217  219  #ifndef _XPG6
 218  220  #define DBL_DIG         15      /* digits of precision of a "double" */
 219  221  #define DBL_MAX         1.7976931348623157081452E+308   /* max decimal value */
 220  222                                                          /* of a double */
 221  223  #define FLT_DIG         6               /* digits of precision of a "float" */
 222  224  #define FLT_MAX         3.4028234663852885981170E+38F   /* max decimal value */
 223  225                                                          /* of a "float" */
 224  226  #endif
 225  227  
 226  228  /* Marked as LEGACY in SUSv1 and removed in SUSv2 */
 227  229  #ifndef _XPG5
 228  230  #define DBL_MIN         2.2250738585072013830903E-308   /* min decimal value */
 229  231                                                          /* of a double */
  
    | 
      ↓ open down ↓ | 
    181 lines elided | 
    
      ↑ open up ↑ | 
  
 230  232  #define FLT_MIN         1.1754943508222875079688E-38F   /* min decimal value */
 231  233                                                          /* of a float */
 232  234  #endif
 233  235  
 234  236  #endif  /* defined(__EXTENSIONS__) || (!defined(_STRICT_STDC) ... */
 235  237  
 236  238  #define _XOPEN_IOV_MAX  16      /* max # iovec/process with readv()/writev() */
 237  239  #define _XOPEN_NAME_MAX 255     /* max # bytes in filename excluding null */
 238  240  #define _XOPEN_PATH_MAX 1024    /* max # bytes in a pathname */
 239  241  
 240      -#define IOV_MAX         _XOPEN_IOV_MAX
 241      -
 242  242  #if defined(__EXTENSIONS__) || \
 243  243          (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX))
 244  244  
 245  245  #define FCHR_MAX        1048576         /* max size of a file in bytes */
 246  246  #define PID_MAX         999999          /* max value for a process ID */
 247  247  
 248  248  /*
 249  249   * POSIX 1003.1a, section 2.9.5, table 2-5 contains [NAME_MAX] and the
 250  250   * related text states:
 251  251   *
 252  252   * A definition of one of the values from Table 2-5 shall be omitted from the
 253  253   * <limits.h> on specific implementations where the corresponding value is
 254  254   * equal to or greater than the stated minimum, but where the value can vary
 255  255   * depending on the file to which it is applied. The actual value supported for
 256  256   * a specific pathname shall be provided by the pathconf() (5.7.1) function.
 257  257   *
 258  258   * This is clear that any machine supporting multiple file system types
 259  259   * and/or a network can not include this define, regardless of protection
 260  260   * by the _POSIX_SOURCE and _POSIX_C_SOURCE flags.
 261  261   *
 262  262   * #define      NAME_MAX        14
 263  263   */
 264  264  
 265  265  #define CHILD_MAX       25      /* max # of processes per user id */
 266  266  #ifndef OPEN_MAX
 267  267  #define OPEN_MAX        256     /* max # of files a process can have open */
 268  268  #endif
 269  269  
 270  270  #define PIPE_MAX        5120    /* max # bytes written to a pipe in a write */
 271  271  
 272  272  #define STD_BLK         1024    /* # bytes in a physical I/O block */
 273  273  #define UID_MAX         2147483647      /* max value for a user or group ID */
 274  274  #define USI_MAX         4294967295      /* max decimal value of an "unsigned" */
 275  275  #define SYSPID_MAX      1       /* max pid of system processes */
 276  276  
 277  277  #ifndef SYS_NMLN                /* also defined in sys/utsname.h */
 278  278  #define SYS_NMLN        257     /* 4.0 size of utsname elements */
 279  279  #endif
 280  280  
 281  281  #ifndef CLK_TCK
 282  282  
 283  283  #if !defined(_CLOCK_T) || __cplusplus >= 199711L
 284  284  #define _CLOCK_T
 285  285  typedef long    clock_t;
 286  286  #endif  /* !_CLOCK_T */
 287  287  
 288  288  extern long _sysconf(int);      /* System Private interface to sysconf() */
 289  289  #define CLK_TCK ((clock_t)_sysconf(3))  /* 3 is _SC_CLK_TCK */
 290  290  
 291  291  #endif /* CLK_TCK */
 292  292  
 293  293  #ifdef  __USE_LEGACY_LOGNAME__
 294  294  #define LOGNAME_MAX     8       /* max # of characters in a login name */
 295  295  #else   /* __USE_LEGACY_LOGNAME__ */
 296  296  #define LOGNAME_MAX     32      /* max # of characters in a login name */
 297  297                                  /* Increased for illumos */
 298  298  #endif  /* __USE_LEGACY_LOGNAME__ */
 299  299  #define LOGIN_NAME_MAX  (LOGNAME_MAX + 1)       /* max buffer size */
 300  300  #define LOGNAME_MAX_TRAD        8               /* traditional length */
 301  301  #define LOGIN_NAME_MAX_TRAD     (LOGNAME_MAX_TRAD + 1)  /* and size */
 302  302  
 303  303  #define TTYNAME_MAX     128     /* max # of characters in a tty name */
 304  304  
 305  305  #endif  /* if defined(__EXTENSIONS__) || (!defined(_STRICT_STDC) ... */
 306  306  
 307  307  #if     defined(__EXTENSIONS__) || (_POSIX_C_SOURCE >= 199506L)
 308  308  #include <sys/unistd.h>
 309  309  
 310  310  #if !defined(_SIZE_T) || __cplusplus >= 199711L
 311  311  #define _SIZE_T
 312  312  #if defined(_LP64) || defined(_I32LPx)
 313  313  typedef unsigned long size_t;   /* size of something in bytes */
 314  314  #else
 315  315  typedef unsigned int  size_t;   /* (historical version) */
 316  316  #endif
 317  317  #endif  /* _SIZE_T */
 318  318  
 319  319  extern long _sysconf(int);      /* System Private interface to sysconf() */
 320  320  
 321  321  #define PTHREAD_STACK_MIN       ((size_t)_sysconf(_SC_THREAD_STACK_MIN))
 322  322  /* Added for UNIX98 conformance */
 323  323  #define PTHREAD_DESTRUCTOR_ITERATIONS   _POSIX_THREAD_DESTRUCTOR_ITERATIONS
 324  324  #define PTHREAD_KEYS_MAX                _POSIX_THREAD_KEYS_MAX
 325  325  #define PTHREAD_THREADS_MAX             _POSIX_THREAD_THREADS_MAX
 326  326  #endif  /* defined(__EXTENSIONS__) || (_POSIX_C_SOURCE >= 199506L) */
 327  327  
 328  328  #ifdef  __cplusplus
 329  329  }
 330  330  #endif
 331  331  
 332  332  #endif  /* _LIMITS_H */
  
    | 
      ↓ open down ↓ | 
    81 lines elided | 
    
      ↑ open up ↑ | 
  
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX