Go to the documentation of this file. 6 #ifndef ABTI_ERROR_H_INCLUDED 7 #define ABTI_ERROR_H_INCLUDED 12 #ifndef ABT_CONFIG_DISABLE_ERROR_CHECK 13 #define ABTI_IS_ERROR_CHECK_ENABLED 1 15 #define ABTI_IS_ERROR_CHECK_ENABLED 0 18 #define ABTI_ASSERT(cond) \ 20 if (ABTI_IS_ERROR_CHECK_ENABLED) { \ 25 #define ABTI_STATIC_ASSERT(cond) \ 27 ((void)sizeof(char[2 * !!(cond)-1])); \ 30 #define ABTI_CHECK_INITIALIZED() \ 32 if (ABTI_IS_ERROR_CHECK_ENABLED && gp_ABTI_global == NULL) { \ 33 abt_errno = ABT_ERR_UNINITIALIZED; \ 38 #define ABTI_CHECK_ERROR(abt_errno) \ 40 if (ABTI_IS_ERROR_CHECK_ENABLED && abt_errno != ABT_SUCCESS) { \ 45 #define ABTI_CHECK_ERROR_MSG(abt_errno, msg) \ 47 if (ABTI_IS_ERROR_CHECK_ENABLED && abt_errno != ABT_SUCCESS) { \ 53 #define ABTI_CHECK_TRUE(cond, val) \ 55 if (ABTI_IS_ERROR_CHECK_ENABLED && !(cond)) { \ 61 #define ABTI_CHECK_TRUE_RET(cond, val) \ 63 if (ABTI_IS_ERROR_CHECK_ENABLED && !(cond)) { \ 68 #define ABTI_CHECK_TRUE_MSG(cond, val, msg) \ 70 if (ABTI_IS_ERROR_CHECK_ENABLED && !(cond)) { \ 77 #define ABTI_CHECK_TRUE_MSG_RET(cond, val, msg) \ 79 if (ABTI_IS_ERROR_CHECK_ENABLED && !(cond)) { \ 85 #define ABTI_CHECK_NULL_XSTREAM_PTR(p) \ 87 if (ABTI_IS_ERROR_CHECK_ENABLED && p == (ABTI_xstream *)NULL) { \ 88 abt_errno = ABT_ERR_INV_XSTREAM; \ 93 #define ABTI_CHECK_NULL_POOL_PTR(p) \ 95 if (ABTI_IS_ERROR_CHECK_ENABLED && p == (ABTI_pool *)NULL) { \ 96 abt_errno = ABT_ERR_INV_POOL; \ 101 #define ABTI_CHECK_NULL_SCHED_PTR(p) \ 103 if (ABTI_IS_ERROR_CHECK_ENABLED && p == (ABTI_sched *)NULL) { \ 104 abt_errno = ABT_ERR_INV_SCHED; \ 109 #define ABTI_CHECK_NULL_THREAD_PTR(p) \ 111 if (ABTI_IS_ERROR_CHECK_ENABLED && p == (ABTI_thread *)NULL) { \ 112 abt_errno = ABT_ERR_INV_THREAD; \ 117 #define ABTI_CHECK_NULL_THREAD_ATTR_PTR(p) \ 119 if (ABTI_IS_ERROR_CHECK_ENABLED && p == (ABTI_thread_attr *)NULL) { \ 120 abt_errno = ABT_ERR_INV_THREAD_ATTR; \ 125 #define ABTI_CHECK_NULL_TASK_PTR(p) \ 127 if (ABTI_IS_ERROR_CHECK_ENABLED && p == (ABTI_task *)NULL) { \ 128 abt_errno = ABT_ERR_INV_TASK; \ 133 #define ABTI_CHECK_NULL_KEY_PTR(p) \ 135 if (ABTI_IS_ERROR_CHECK_ENABLED && p == (ABTI_key *)NULL) { \ 136 abt_errno = ABT_ERR_INV_KEY; \ 141 #define ABTI_CHECK_NULL_MUTEX_PTR(p) \ 143 if (ABTI_IS_ERROR_CHECK_ENABLED && p == (ABTI_mutex *)NULL) { \ 144 abt_errno = ABT_ERR_INV_MUTEX; \ 149 #define ABTI_CHECK_NULL_MUTEX_ATTR_PTR(p) \ 151 if (ABTI_IS_ERROR_CHECK_ENABLED && p == (ABTI_mutex_attr *)NULL) { \ 152 abt_errno = ABT_ERR_INV_MUTEX_ATTR; \ 157 #define ABTI_CHECK_NULL_COND_PTR(p) \ 159 if (ABTI_IS_ERROR_CHECK_ENABLED && p == (ABTI_cond *)NULL) { \ 160 abt_errno = ABT_ERR_INV_COND; \ 165 #define ABTI_CHECK_NULL_RWLOCK_PTR(p) \ 167 if (ABTI_IS_ERROR_CHECK_ENABLED && p == (ABTI_rwlock *)NULL) { \ 168 abt_errno = ABT_ERR_INV_RWLOCK; \ 173 #define ABTI_CHECK_NULL_FUTURE_PTR(p) \ 175 if (ABTI_IS_ERROR_CHECK_ENABLED && p == (ABTI_future *)NULL) { \ 176 abt_errno = ABT_ERR_INV_FUTURE; \ 181 #define ABTI_CHECK_NULL_EVENTUAL_PTR(p) \ 183 if (ABTI_IS_ERROR_CHECK_ENABLED && p == (ABTI_eventual *)NULL) { \ 184 abt_errno = ABT_ERR_INV_EVENTUAL; \ 189 #define ABTI_CHECK_NULL_BARRIER_PTR(p) \ 191 if (ABTI_IS_ERROR_CHECK_ENABLED && p == (ABTI_barrier *)NULL) { \ 192 abt_errno = ABT_ERR_INV_BARRIER; \ 197 #define ABTI_CHECK_NULL_XSTREAM_BARRIER_PTR(p) \ 199 if (ABTI_IS_ERROR_CHECK_ENABLED && \ 200 p == (ABTI_xstream_barrier *)NULL) { \ 201 abt_errno = ABT_ERR_INV_BARRIER; \ 206 #define ABTI_CHECK_NULL_TIMER_PTR(p) \ 208 if (ABTI_IS_ERROR_CHECK_ENABLED && p == (ABTI_timer *)NULL) { \ 209 abt_errno = ABT_ERR_INV_TIMER; \ 214 #ifdef ABT_CONFIG_PRINT_ABT_ERRNO 215 #define ABTI_IS_PRINT_ABT_ERRNO_ENABLED 1 217 #define ABTI_IS_PRINT_ABT_ERRNO_ENABLED 0 220 #define HANDLE_WARNING(msg) \ 222 if (ABTI_IS_PRINT_ABT_ERRNO_ENABLED) { \ 223 fprintf(stderr, "[%s:%d] %s\n", __FILE__, __LINE__, msg); \ 227 #define HANDLE_ERROR(msg) \ 229 if (ABTI_IS_PRINT_ABT_ERRNO_ENABLED) { \ 230 fprintf(stderr, "[%s:%d] %s\n", __FILE__, __LINE__, msg); \ 234 #define HANDLE_ERROR_WITH_CODE(msg, n) \ 236 if (ABTI_IS_PRINT_ABT_ERRNO_ENABLED) { \ 237 fprintf(stderr, "[%s:%d] %s: %d\n", __FILE__, __LINE__, msg, n); \ 241 #define HANDLE_ERROR_FUNC_WITH_CODE(n) \ 243 if (ABTI_IS_PRINT_ABT_ERRNO_ENABLED) { \ 244 fprintf(stderr, "[%s:%d] %s: %d\n", __FILE__, __LINE__, __func__, \