UCX  1.8
Unified Communication X
status.h
1 
9 #ifndef UCS_TYPES_STATUS_H_
10 #define UCS_TYPES_STATUS_H_
11 
12 #include <ucs/sys/compiler_def.h>
13 
14 BEGIN_C_DECLS
15 
45 typedef enum {
46  /* Operation completed successfully */
47  UCS_OK = 0,
48 
49  /* Operation is queued and still in progress */
51 
52  /* Failure codes */
67  UCS_ERR_BUSY = -15,
78 
84 
85  UCS_ERR_LAST = -100
86 } UCS_S_PACKED ucs_status_t;
87 
88 
89 #define UCS_IS_LINK_ERROR(_code) \
90  (((_code) <= UCS_ERR_FIRST_LINK_FAILURE) && \
91  ((_code) >= UCS_ERR_LAST_LINK_FAILURE)
92 
93 #define UCS_IS_ENDPOINT_ERROR(_code) \
94  (((_code) <= UCS_ERR_FIRST_ENDPOINT_FAILURE) && \
95  ((_code) >= UCS_ERR_LAST_ENDPOINT_FAILURE)
96 
106 typedef void *ucs_status_ptr_t;
107 
108 #define UCS_PTR_IS_ERR(_ptr) (((uintptr_t)(_ptr)) >= ((uintptr_t)UCS_ERR_LAST))
109 #define UCS_PTR_IS_PTR(_ptr) (((uintptr_t)(_ptr) - 1) < ((uintptr_t)UCS_ERR_LAST - 1))
110 #define UCS_PTR_RAW_STATUS(_ptr) ((ucs_status_t)(intptr_t)(_ptr))
111 #define UCS_PTR_STATUS(_ptr) (UCS_PTR_IS_PTR(_ptr) ? UCS_INPROGRESS : UCS_PTR_RAW_STATUS(_ptr))
112 #define UCS_STATUS_PTR(_status) ((void*)(intptr_t)(_status))
113 #define UCS_STATUS_IS_ERR(_status) ((_status) < 0)
114 
115 
121 const char *ucs_status_string(ucs_status_t status);
122 
123 END_C_DECLS
124 
125 #endif
Definition: status.h:74
Definition: status.h:83
Definition: status.h:73
Definition: status.h:62
Definition: status.h:75
Definition: status.h:69
Definition: status.h:67
Definition: status.h:77
Definition: status.h:63
Definition: status.h:82
Definition: status.h:65
Definition: status.h:60
Definition: status.h:57
Definition: status.h:79
Definition: status.h:55
Definition: status.h:56
ucs_status_t
Status codes.
Definition: status.h:45
Definition: status.h:72
Definition: status.h:54
Definition: status.h:85
Definition: status.h:76
Definition: status.h:80
Definition: status.h:58
Definition: status.h:47
Definition: status.h:53
Definition: status.h:59
void * ucs_status_ptr_t
Status pointer.
Definition: status.h:106
Definition: status.h:68
Definition: status.h:61
Definition: status.h:66
Definition: status.h:50
Definition: status.h:70
Definition: status.h:64
Definition: status.h:81
Definition: status.h:71