16 #ifndef INCLUDE_NN_NLIB_PLATFORM_CTR_H_ 17 #define INCLUDE_NN_NLIB_PLATFORM_CTR_H_ 18 #ifndef INCLUDE_NN_NLIB_PLATFORM_H_ 19 #error do not include directly 22 #ifdef NN_PLATFORM_CTR 25 #ifndef __STDC_LIMIT_MACROS 26 #define __STDC_LIMIT_MACROS 28 #ifndef __STDC_CONSTANT_MACROS 29 #define __STDC_CONSTANT_MACROS 33 #ifndef __USE_C99_MATH 34 #define __USE_C99_MATH 43 #define NLIB_ALWAYS_INLINE __forceinline 44 #define NLIB_NEVER_INLINE __declspec(noinline) 48 #define NLIB_LIKELY(x) __builtin_expect(!!(x), 1) 49 #define NLIB_UNLIKELY(x) __builtin_expect(!!(x), 0) 50 #define NLIB_EXPECT(var, exp_value) __builtin_expect((var), (exp_value)) 51 #define NLIB_CHECK_RESULT 52 #define NLIB_NORETURN __attribute__((noreturn)) 53 #define NLIB_FALLTHROUGH 54 #define NLIB_NONNULL __attribute__((nonnull)) 55 #define NLIB_NONNULL_1 __attribute__((nonnull(1))) 56 #define NLIB_NONNULL_2 __attribute__((nonnull(2))) 57 #define NLIB_NONNULL_3 __attribute__((nonnull(3))) 58 #define NLIB_NONNULL_4 __attribute__((nonnull(4))) 59 #define NLIB_NONNULL_5 __attribute__((nonnull(5))) 60 #define NLIB_NONNULL_ENABLED 61 #define NLIB_ATTRIBUTE_MALLOC __attribute__((malloc)) 62 #define NLIB_ATTRIBUTE_PURE __attribute__((pure)) 63 #define NLIB_ATTRIBUTE_CONST __attribute__((const)) 64 #define NLIB_ATTRIBUTE_ALLOC_SIZE1(n) 65 #define NLIB_ATTRIBUTE_ALLOC_SIZE2(n0, n1) 66 #define NLIB_ATTRIBUTE_ALLOC_ALIGN(algn) 67 #define NLIB_ATTRIBUTE_ASSUME_ALIGNED(n) 68 #ifndef NLIB_DEPRECATED 69 #define NLIB_DEPRECATED 71 #ifndef NLIB_DEPRECATED_MSG 72 #define NLIB_DEPRECATED_MSG(msg) 74 #define NLIB_VIS_HIDDEN 75 #define NLIB_VIS_PUBLIC 76 #define NLIB_WEAKSYMBOL __attribute__((weak)) 77 #define NLIB_LITTLE_ENDIAN 79 void nlib_ctr_barrier(
void);
80 #define NLIB_MEMORY_ORDER_RELEASE nlib_ctr_barrier() 81 #define NLIB_MEMORY_ORDER_ACQUIRE nlib_ctr_barrier() 82 #define NLIB_MEMORY_ORDER_ACQ_REL nlib_ctr_barrier() 83 #define NLIB_MEMORY_ORDER_SEQ_CST nlib_ctr_barrier() 91 #define NLIB_MUTEX_INITIALIZER \ 92 { 0xFFFFFFFFUL, 0xFFFFFFFFUL, 0xFFFFFFFFUL } 93 #define NLIB_RECURSIVE_MUTEX_INITIALIZER \ 94 { 0xFFFFFFFFUL, 0xFFFFFFFFUL, 0xFFFFFFFFUL } 95 #define NLIB_RECURSIVE_TIMED_MUTEX_INITIALIZER \ 96 { 0xFFFFFFFFUL, 0xFFFFFFFFUL, 0xFFFFFFFFUL } 100 struct nlib_semaphore_ {
109 #define NLIB_COND_INITIALIZER \ 112 __declspec(noreturn)
int MyNoreturn_(
void);
113 #define NLIB_ASSUME(cond) (void)((cond) || MyNoreturn_()) 115 #define NLIB_LIBC_nlib_memcmp 117 #define NLIB_ATOMIC_RELAXED (0) 118 #define NLIB_ATOMIC_ACQUIRE (1) 119 #define NLIB_ATOMIC_RELEASE (2) 120 #define NLIB_ATOMIC_ACQ_REL (3) 121 #define NLIB_ATOMIC_SEQ_CST (7) 127 int success_memorder,
int failure_memorder);
143 int success_memorder,
int failure_memorder);
161 int success_memorder,
int failure_memorder);
167 #define NLIB_FD_O_RDONLY (0x0000) 168 #define NLIB_FD_O_WRONLY (0x0001) 169 #define NLIB_FD_O_RDWR (0x0002) 170 #define NLIB_FD_O_APPEND (0x0008) 171 #define NLIB_FD_O_CREAT (0x0100) 172 #define NLIB_FD_O_TRUNC (0x0200) 173 #define NLIB_FD_O_EXCL (0x0400) 179 #define NLIB_NOEXCEPT 180 #ifndef NLIB_HAS_ZLIB 181 #define NLIB_HAS_ZLIB 185 #endif // INCLUDE_NN_NLIB_PLATFORM_CTR_H_