17777dab0Sopenharmony_ci#ifndef _FEATURES_H 27777dab0Sopenharmony_ci#define _FEATURES_H 37777dab0Sopenharmony_ci 47777dab0Sopenharmony_ci#if defined(_ALL_SOURCE) && !defined(_GNU_SOURCE) 57777dab0Sopenharmony_ci#define _GNU_SOURCE 1 67777dab0Sopenharmony_ci#endif 77777dab0Sopenharmony_ci 87777dab0Sopenharmony_ci#if defined(_DEFAULT_SOURCE) && !defined(_BSD_SOURCE) 97777dab0Sopenharmony_ci#define _BSD_SOURCE 1 107777dab0Sopenharmony_ci#endif 117777dab0Sopenharmony_ci 127777dab0Sopenharmony_ci#if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) \ 137777dab0Sopenharmony_ci && !defined(_XOPEN_SOURCE) && !defined(_GNU_SOURCE) \ 147777dab0Sopenharmony_ci && !defined(_BSD_SOURCE) && !defined(__STRICT_ANSI__) 157777dab0Sopenharmony_ci#define _BSD_SOURCE 1 167777dab0Sopenharmony_ci#define _XOPEN_SOURCE 700 177777dab0Sopenharmony_ci#endif 187777dab0Sopenharmony_ci 197777dab0Sopenharmony_ci#if __STDC_VERSION__ >= 199901L 207777dab0Sopenharmony_ci#define __restrict restrict 217777dab0Sopenharmony_ci#elif !defined(__GNUC__) 227777dab0Sopenharmony_ci#define __restrict 237777dab0Sopenharmony_ci#endif 247777dab0Sopenharmony_ci 257777dab0Sopenharmony_ci#if __STDC_VERSION__ >= 199901L || defined(__cplusplus) 267777dab0Sopenharmony_ci#define __inline inline 277777dab0Sopenharmony_ci#elif !defined(__GNUC__) 287777dab0Sopenharmony_ci#define __inline 297777dab0Sopenharmony_ci#endif 307777dab0Sopenharmony_ci 317777dab0Sopenharmony_ci#if __STDC_VERSION__ >= 201112L 327777dab0Sopenharmony_ci#elif defined(__GNUC__) 337777dab0Sopenharmony_ci#define _Noreturn __attribute__((__noreturn__)) 347777dab0Sopenharmony_ci#else 357777dab0Sopenharmony_ci#define _Noreturn 367777dab0Sopenharmony_ci#endif 377777dab0Sopenharmony_ci 387777dab0Sopenharmony_ci#define __REDIR(x,y) __typeof__(x) x __asm__(#y) 397777dab0Sopenharmony_ci 407777dab0Sopenharmony_ci#endif 41