Print this page
8548 want memset_s(3C)
Reviewed by: Robert Mustacchi <rm@joyent.com>


  67  * _STRICT_STDC         __STDC__ is specified by the C Standards and defined
  68  *                      by the compiler. For Sun compilers the value of
  69  *                      __STDC__ is either 1, 0, or not defined based on the
  70  *                      compilation mode (see cc(1)). When the value of
  71  *                      __STDC__ is 1 and in the absence of any other feature
  72  *                      test macros, the namespace available to the application
  73  *                      is limited to only those symbols defined by the C
  74  *                      Standard. _STRICT_STDC provides a more readable means
  75  *                      of identifying symbols defined by the standard, or in
  76  *                      the negative, symbols that are extensions to the C
  77  *                      Standard. See additional comments for GNU C differences.
  78  *
  79  * _STDC_C99            __STDC_VERSION__ is specified by the C standards and
  80  *                      defined by the compiler and indicates the version of
  81  *                      the C standard. A value of 199901L indicates a
  82  *                      compiler that complies with ISO/IEC 9899:1999, other-
  83  *                      wise known as the C99 standard.
  84  *
  85  * _STDC_C11            Like _STDC_C99 except that the value of __STDC_VERSION__
  86  *                      is 201112L indicating a compiler that compiles with
  87  *                      ISO/IEXC 9899:2011, otherwise known as the C11 standard.
  88  *
  89  * _STRICT_SYMBOLS      Used in cases where symbol visibility is restricted
  90  *                      by the standards, and the user has not explicitly
  91  *                      relaxed the strictness via __EXTENSIONS__.
  92  */
  93 
  94 #if defined(_XOPEN_SOURCE) || defined(_POSIX_C_SOURCE)
  95 #define __XOPEN_OR_POSIX
  96 #endif
  97 
  98 /*
  99  * ISO/IEC 9899:1990 and it's revisions, ISO/IEC 9899:1999 and ISO/IEC
 100  * 99899:2011 specify the following predefined macro name:
 101  *
 102  * __STDC__     The integer constant 1, intended to indicate a conforming
 103  *              implementation.
 104  *
 105  * Furthermore, a strictly conforming program shall use only those features
 106  * of the language and library specified in these standards. A conforming
 107  * implementation shall accept any strictly conforming program.


 419 /* CSTYLED */
 420 # define        _RESTRICT_KYWD  restrict
 421 #endif
 422 #else
 423 #define _RESTRICT_KYWD
 424 #endif
 425 
 426 /*
 427  * The following macro defines a value for the ISO C11 _Noreturn
 428  * keyword so that _NORETURN_KYWD resolves to "_Noreturn" if
 429  * an ISO C11 compiler is used and "" (null string) if any other
 430  * compiler is used. This allows for the use of single prototype
 431  * declarations regardless of compiler version.
 432  */
 433 #if (defined(__STDC__) && defined(_STDC_C11)) && !defined(__cplusplus)
 434 #define _NORETURN_KYWD  _Noreturn
 435 #else
 436 #define _NORETURN_KYWD
 437 #endif
 438 






 439 









 440 /*
 441  * The following macro indicates header support for the ANSI C++
 442  * standard.  The ISO/IEC designation for this is ISO/IEC FDIS 14882.
 443  */
 444 #define _ISO_CPP_14882_1998
 445 
 446 /*
 447  * The following macro indicates header support for the C99 standard,
 448  * ISO/IEC 9899:1999, Programming Languages - C.
 449  */
 450 #define _ISO_C_9899_1999
 451 
 452 /*
 453  * The following macro indicates header support for the C99 standard,
 454  * ISO/IEC 9899:2011, Programming Languages - C.
 455  */
 456 #define _ISO_C_9899_2011
 457 
 458 /*






 459  * The following macro indicates header support for DTrace. The value is an
 460  * integer that corresponds to the major version number for DTrace.
 461  */
 462 #define _DTRACE_VERSION 1
 463 
 464 #ifdef  __cplusplus
 465 }
 466 #endif
 467 
 468 #endif  /* _SYS_FEATURE_TESTS_H */


  67  * _STRICT_STDC         __STDC__ is specified by the C Standards and defined
  68  *                      by the compiler. For Sun compilers the value of
  69  *                      __STDC__ is either 1, 0, or not defined based on the
  70  *                      compilation mode (see cc(1)). When the value of
  71  *                      __STDC__ is 1 and in the absence of any other feature
  72  *                      test macros, the namespace available to the application
  73  *                      is limited to only those symbols defined by the C
  74  *                      Standard. _STRICT_STDC provides a more readable means
  75  *                      of identifying symbols defined by the standard, or in
  76  *                      the negative, symbols that are extensions to the C
  77  *                      Standard. See additional comments for GNU C differences.
  78  *
  79  * _STDC_C99            __STDC_VERSION__ is specified by the C standards and
  80  *                      defined by the compiler and indicates the version of
  81  *                      the C standard. A value of 199901L indicates a
  82  *                      compiler that complies with ISO/IEC 9899:1999, other-
  83  *                      wise known as the C99 standard.
  84  *
  85  * _STDC_C11            Like _STDC_C99 except that the value of __STDC_VERSION__
  86  *                      is 201112L indicating a compiler that compiles with
  87  *                      ISO/IEC 9899:2011, otherwise known as the C11 standard.
  88  *
  89  * _STRICT_SYMBOLS      Used in cases where symbol visibility is restricted
  90  *                      by the standards, and the user has not explicitly
  91  *                      relaxed the strictness via __EXTENSIONS__.
  92  */
  93 
  94 #if defined(_XOPEN_SOURCE) || defined(_POSIX_C_SOURCE)
  95 #define __XOPEN_OR_POSIX
  96 #endif
  97 
  98 /*
  99  * ISO/IEC 9899:1990 and it's revisions, ISO/IEC 9899:1999 and ISO/IEC
 100  * 99899:2011 specify the following predefined macro name:
 101  *
 102  * __STDC__     The integer constant 1, intended to indicate a conforming
 103  *              implementation.
 104  *
 105  * Furthermore, a strictly conforming program shall use only those features
 106  * of the language and library specified in these standards. A conforming
 107  * implementation shall accept any strictly conforming program.


 419 /* CSTYLED */
 420 # define        _RESTRICT_KYWD  restrict
 421 #endif
 422 #else
 423 #define _RESTRICT_KYWD
 424 #endif
 425 
 426 /*
 427  * The following macro defines a value for the ISO C11 _Noreturn
 428  * keyword so that _NORETURN_KYWD resolves to "_Noreturn" if
 429  * an ISO C11 compiler is used and "" (null string) if any other
 430  * compiler is used. This allows for the use of single prototype
 431  * declarations regardless of compiler version.
 432  */
 433 #if (defined(__STDC__) && defined(_STDC_C11)) && !defined(__cplusplus)
 434 #define _NORETURN_KYWD  _Noreturn
 435 #else
 436 #define _NORETURN_KYWD
 437 #endif
 438 
 439 /* ISO/IEC 9899:2011 Annex K */
 440 #if !defined(_STRICT_SYMBOLS)
 441 #define __EXT1_VISIBLE  1
 442 #else
 443 #define __EXT1_VISIBLE  0
 444 #endif
 445 
 446 #if defined(__STDC_WANT_LIB_EXT1__)
 447 #undef  __EXT1_VISIBLE
 448 #if __STDC_WANT_LIB_EXT1__
 449 #define __EXT1_VISIBLE          1
 450 #else
 451 #define __EXT1_VISIBLE          0
 452 #endif
 453 #endif /* __STDC_WANT_LIB_EXT1__ */
 454 
 455 /*
 456  * The following macro indicates header support for the ANSI C++
 457  * standard.  The ISO/IEC designation for this is ISO/IEC FDIS 14882.
 458  */
 459 #define _ISO_CPP_14882_1998
 460 
 461 /*
 462  * The following macro indicates header support for the C99 standard,
 463  * ISO/IEC 9899:1999, Programming Languages - C.
 464  */
 465 #define _ISO_C_9899_1999
 466 
 467 /*
 468  * The following macro indicates header support for the C11 standard,
 469  * ISO/IEC 9899:2011, Programming Languages - C.
 470  */
 471 #define _ISO_C_9899_2011
 472 
 473 /*
 474  * The following macro indicates header support for the C11 standard,
 475  * ISO/IEC 9899:2011 Annex K, Programming Languages - C.
 476  */
 477 #undef  __STDC_LIB_EXT1__
 478 
 479 /*
 480  * The following macro indicates header support for DTrace. The value is an
 481  * integer that corresponds to the major version number for DTrace.
 482  */
 483 #define _DTRACE_VERSION 1
 484 
 485 #ifdef  __cplusplus
 486 }
 487 #endif
 488 
 489 #endif  /* _SYS_FEATURE_TESTS_H */