github.com/afumu/libc@v0.0.6/musl/include/limits.h (about)

     1  #ifndef _LIMITS_H
     2  #define _LIMITS_H
     3  
     4  #include <features.h>
     5  
     6  #include <bits/alltypes.h> /* __LONG_MAX */
     7  
     8  /* Support signed or unsigned plain-char */
     9  
    10  #if '\xff' > 0
    11  #define CHAR_MIN 0
    12  #define CHAR_MAX 255
    13  #else
    14  #define CHAR_MIN (-128)
    15  #define CHAR_MAX 127
    16  #endif
    17  
    18  #define CHAR_BIT 8
    19  #define SCHAR_MIN (-128)
    20  #define SCHAR_MAX 127
    21  #define UCHAR_MAX 255
    22  #define SHRT_MIN  (-1-0x7fff)
    23  #define SHRT_MAX  0x7fff
    24  #define USHRT_MAX 0xffff
    25  #define INT_MIN  (-1-0x7fffffff)
    26  #define INT_MAX  0x7fffffff
    27  #define UINT_MAX 0xffffffffU
    28  #define LONG_MIN (-LONG_MAX-1)
    29  #define LONG_MAX __LONG_MAX
    30  #define ULONG_MAX (2UL*LONG_MAX+1)
    31  #define LLONG_MIN (-LLONG_MAX-1)
    32  #define LLONG_MAX  0x7fffffffffffffffLL
    33  #define ULLONG_MAX (2ULL*LLONG_MAX+1)
    34  
    35  #define MB_LEN_MAX 4
    36  
    37  #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
    38   || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
    39  
    40  #include <bits/limits.h>
    41  
    42  #define PIPE_BUF 4096
    43  #define FILESIZEBITS 64
    44  #ifndef NAME_MAX
    45  #define NAME_MAX 255
    46  #endif
    47  #define PATH_MAX 4096
    48  #define NGROUPS_MAX 32
    49  #define ARG_MAX 131072
    50  #define IOV_MAX 1024
    51  #define SYMLOOP_MAX 40
    52  #define WORD_BIT 32
    53  #define SSIZE_MAX LONG_MAX
    54  #define TZNAME_MAX 6
    55  #define TTY_NAME_MAX 32
    56  #define HOST_NAME_MAX 255
    57  
    58  #if LONG_MAX == 0x7fffffffL
    59  #define LONG_BIT 32
    60  #else
    61  #define LONG_BIT 64
    62  #endif
    63  
    64  /* Implementation choices... */
    65  
    66  #define PTHREAD_KEYS_MAX 128
    67  #define PTHREAD_STACK_MIN 2048
    68  #define PTHREAD_DESTRUCTOR_ITERATIONS 4
    69  #define SEM_VALUE_MAX 0x7fffffff
    70  #define SEM_NSEMS_MAX 256
    71  #define DELAYTIMER_MAX 0x7fffffff
    72  #define MQ_PRIO_MAX 32768
    73  #define LOGIN_NAME_MAX 256
    74  
    75  /* Arbitrary numbers... */
    76  
    77  #define BC_BASE_MAX 99
    78  #define BC_DIM_MAX 2048
    79  #define BC_SCALE_MAX 99
    80  #define BC_STRING_MAX 1000
    81  #define CHARCLASS_NAME_MAX 14
    82  #define COLL_WEIGHTS_MAX 2
    83  #define EXPR_NEST_MAX 32
    84  #define LINE_MAX 4096
    85  #define RE_DUP_MAX 255
    86  
    87  #define NL_ARGMAX 9
    88  #define NL_MSGMAX 32767
    89  #define NL_SETMAX 255
    90  #define NL_TEXTMAX 2048
    91  
    92  #endif
    93  
    94  #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_XOPEN_SOURCE)
    95  
    96  #ifdef PAGESIZE
    97  #define PAGE_SIZE PAGESIZE
    98  #endif
    99  #define NZERO 20
   100  #define NL_LANGMAX 32
   101  
   102  #endif
   103  
   104  #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) \
   105   || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)
   106  
   107  #define NL_NMAX 16
   108  
   109  #endif
   110  
   111  /* POSIX/SUS requirements follow. These numbers come directly
   112   * from SUS and have nothing to do with the host system. */
   113  
   114  #define _POSIX_AIO_LISTIO_MAX   2
   115  #define _POSIX_AIO_MAX          1
   116  #define _POSIX_ARG_MAX          4096
   117  #define _POSIX_CHILD_MAX        25
   118  #define _POSIX_CLOCKRES_MIN     20000000
   119  #define _POSIX_DELAYTIMER_MAX   32
   120  #define _POSIX_HOST_NAME_MAX    255
   121  #define _POSIX_LINK_MAX         8
   122  #define _POSIX_LOGIN_NAME_MAX   9
   123  #define _POSIX_MAX_CANON        255
   124  #define _POSIX_MAX_INPUT        255
   125  #define _POSIX_MQ_OPEN_MAX      8
   126  #define _POSIX_MQ_PRIO_MAX      32
   127  #define _POSIX_NAME_MAX         14
   128  #define _POSIX_NGROUPS_MAX      8
   129  #define _POSIX_OPEN_MAX         20
   130  #define _POSIX_PATH_MAX         256
   131  #define _POSIX_PIPE_BUF         512
   132  #define _POSIX_RE_DUP_MAX       255
   133  #define _POSIX_RTSIG_MAX        8
   134  #define _POSIX_SEM_NSEMS_MAX    256
   135  #define _POSIX_SEM_VALUE_MAX    32767
   136  #define _POSIX_SIGQUEUE_MAX     32
   137  #define _POSIX_SSIZE_MAX        32767
   138  #define _POSIX_STREAM_MAX       8
   139  #define _POSIX_SS_REPL_MAX      4
   140  #define _POSIX_SYMLINK_MAX      255
   141  #define _POSIX_SYMLOOP_MAX      8
   142  #define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
   143  #define _POSIX_THREAD_KEYS_MAX  128
   144  #define _POSIX_THREAD_THREADS_MAX 64
   145  #define _POSIX_TIMER_MAX        32
   146  #define _POSIX_TRACE_EVENT_NAME_MAX 30
   147  #define _POSIX_TRACE_NAME_MAX   8
   148  #define _POSIX_TRACE_SYS_MAX    8
   149  #define _POSIX_TRACE_USER_EVENT_MAX 32
   150  #define _POSIX_TTY_NAME_MAX     9
   151  #define _POSIX_TZNAME_MAX       6
   152  #define _POSIX2_BC_BASE_MAX     99
   153  #define _POSIX2_BC_DIM_MAX      2048
   154  #define _POSIX2_BC_SCALE_MAX    99
   155  #define _POSIX2_BC_STRING_MAX   1000
   156  #define _POSIX2_CHARCLASS_NAME_MAX 14
   157  #define _POSIX2_COLL_WEIGHTS_MAX 2
   158  #define _POSIX2_EXPR_NEST_MAX   32
   159  #define _POSIX2_LINE_MAX        2048
   160  #define _POSIX2_RE_DUP_MAX      255
   161  
   162  #define _XOPEN_IOV_MAX          16
   163  #define _XOPEN_NAME_MAX         255
   164  #define _XOPEN_PATH_MAX         1024
   165  
   166  #endif