ARGOBOTS  dce6e727ffc4ca5b3ffc04cb9517c6689be51ec5
error.c
Go to the documentation of this file.
1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
2 /*
3  * See COPYRIGHT in top-level directory.
4  */
5 
6 #include "abti.h"
7 
51 int ABT_error_get_str(int err, char *str, size_t *len)
52 {
53  static const char *err_str[] = { "ABT_SUCCESS",
54  "ABT_ERR_UNINITIALIZED",
55  "ABT_ERR_MEM",
56  "ABT_ERR_OTHER",
57  "ABT_ERR_INV_XSTREAM",
58  "ABT_ERR_INV_XSTREAM_RANK",
59  "ABT_ERR_INV_XSTREAM_BARRIER",
60  "ABT_ERR_INV_SCHED",
61  "ABT_ERR_INV_SCHED_KIND",
62  "ABT_ERR_INV_SCHED_PREDEF",
63  "ABT_ERR_INV_SCHED_TYPE",
64  "ABT_ERR_INV_SCHED_CONFIG",
65  "ABT_ERR_INV_POOL",
66  "ABT_ERR_INV_POOL_KIND",
67  "ABT_ERR_INV_POOL_ACCESS",
68  "ABT_ERR_INV_UNIT",
69  "ABT_ERR_INV_THREAD",
70  "ABT_ERR_INV_THREAD_ATTR",
71  "ABT_ERR_INV_TASK",
72  "ABT_ERR_INV_KEY",
73  "ABT_ERR_INV_MUTEX",
74  "ABT_ERR_INV_MUTEX_ATTR",
75  "ABT_ERR_INV_COND",
76  "ABT_ERR_INV_RWLOCK",
77  "ABT_ERR_INV_EVENTUAL",
78  "ABT_ERR_INV_FUTURE",
79  "ABT_ERR_INV_BARRIER",
80  "ABT_ERR_INV_TIMER",
81  "ABT_ERR_INV_QUERY_KIND",
82  "ABT_ERR_XSTREAM",
83  "ABT_ERR_XSTREAM_STATE",
84  "ABT_ERR_XSTREAM_BARRIER",
85  "ABT_ERR_SCHED",
86  "ABT_ERR_SCHED_CONFIG",
87  "ABT_ERR_POOL",
88  "ABT_ERR_UNIT",
89  "ABT_ERR_THREAD",
90  "ABT_ERR_TASK",
91  "ABT_ERR_KEY",
92  "ABT_ERR_MUTEX",
93  "ABT_ERR_MUTEX_LOCKED",
94  "ABT_ERR_COND",
95  "ABT_ERR_COND_TIMEDOUT",
96  "ABT_ERR_RWLOCK",
97  "ABT_ERR_EVENTUAL",
98  "ABT_ERR_FUTURE",
99  "ABT_ERR_BARRIER",
100  "ABT_ERR_TIMER",
101  "ABT_ERR_MIGRATION_TARGET",
102  "ABT_ERR_MIGRATION_NA",
103  "ABT_ERR_MISSING_JOIN",
104  "ABT_ERR_FEATURE_NA",
105  "ABT_ERR_INV_TOOL_CONTEXT",
106  "ABT_ERR_INV_ARG",
107  "ABT_ERR_SYS",
108  "ABT_ERR_CPUID",
109  "ABT_ERR_INV_POOL_CONFIG",
110  "ABT_ERR_INV_POOL_USER_DEF" };
111 
112 #ifndef ABT_CONFIG_ENABLE_VER_20_API
113  ABTI_CHECK_TRUE(err >= ABT_SUCCESS &&
114  err < (int)(sizeof(err_str) / sizeof(err_str[0])),
115  ABT_ERR_OTHER);
116  /* This entry does not exist. */
117  ABTI_CHECK_TRUE(err_str[err], ABT_ERR_OTHER);
118 #else
119  ABTI_CHECK_TRUE(err >= ABT_SUCCESS &&
120  err < (int)(sizeof(err_str) / sizeof(err_str[0])),
122  /* This entry does not exist. */
123  ABTI_CHECK_TRUE(err_str[err], ABT_ERR_INV_ARG);
124 #endif
125 
126  if (str)
127  strcpy(str, err_str[err]);
128  if (len)
129  *len = strlen(err_str[err]);
130  return ABT_SUCCESS;
131 }
abti.h
ABT_error_get_str
int ABT_error_get_str(int err, char *str, size_t *len)
Retrieve a string of an error code and its length.
Definition: error.c:52
ABT_SUCCESS
#define ABT_SUCCESS
Error code: the routine returns successfully.
Definition: abt.h:92
ABT_ERR_INV_ARG
#define ABT_ERR_INV_ARG
Error code: invalid user argument.
Definition: abt.h:260
ABT_ERR_OTHER
#define ABT_ERR_OTHER
Error code: other error.
Definition: abt.h:109
ABTI_CHECK_TRUE
#define ABTI_CHECK_TRUE(cond, abt_errno)
Definition: abti_error.h:146