UCX  1.8
Unified Communication X
types.h
1 
7 #ifndef UCS_CONFIG_TYPES_H
8 #define UCS_CONFIG_TYPES_H
9 
10 #include <ucs/sys/compiler_def.h>
11 #include <sys/socket.h>
12 
16 typedef enum {
17  UCS_LOG_LEVEL_FATAL, /* Immediate termination */
18  UCS_LOG_LEVEL_ERROR, /* Error is returned to the user */
19  UCS_LOG_LEVEL_WARN, /* Something's wrong, but we continue */
20  UCS_LOG_LEVEL_INFO, /* Information */
21  UCS_LOG_LEVEL_DEBUG, /* Low-volume debugging */
22  UCS_LOG_LEVEL_TRACE, /* High-volume debugging */
23  UCS_LOG_LEVEL_TRACE_REQ, /* Every send/receive request */
24  UCS_LOG_LEVEL_TRACE_DATA, /* Data sent/received on the transport */
25  UCS_LOG_LEVEL_TRACE_ASYNC, /* Asynchronous progress engine */
26  UCS_LOG_LEVEL_TRACE_FUNC, /* Function calls */
27  UCS_LOG_LEVEL_TRACE_POLL, /* Polling functions */
28  UCS_LOG_LEVEL_LAST,
29  UCS_LOG_LEVEL_PRINT /* Temporary output */
30 } ucs_log_level_t;
31 
32 
36 typedef enum {
37  UCS_ASYNC_MODE_SIGNAL,
38  UCS_ASYNC_MODE_THREAD, /* Deprecated, keep for backward compatibility */
39  UCS_ASYNC_MODE_THREAD_SPINLOCK = UCS_ASYNC_MODE_THREAD,
40  UCS_ASYNC_MODE_THREAD_MUTEX,
41  UCS_ASYNC_MODE_POLL, /* TODO keep only in debug version */
42  UCS_ASYNC_MODE_LAST
43 } ucs_async_mode_t;
44 
45 
46 extern const char *ucs_async_mode_names[];
47 
48 
52 typedef enum ucs_ternary_value {
53  UCS_NO = 0,
54  UCS_YES = 1,
55  UCS_TRY = 2,
56  UCS_TERNARY_LAST
57 } ucs_ternary_value_t;
58 
59 
63 typedef enum ucs_on_off_auto_value {
64  UCS_CONFIG_OFF = 0,
65  UCS_CONFIG_ON = 1,
66  UCS_CONFIG_AUTO = 2,
67  UCS_CONFIG_ON_OFF_LAST
68 } ucs_on_off_auto_value_t;
69 
70 
74 typedef enum {
75  UCS_HANDLE_ERROR_BACKTRACE, /* Print backtrace */
76  UCS_HANDLE_ERROR_FREEZE, /* Freeze and wait for a debugger */
77  UCS_HANDLE_ERROR_DEBUG, /* Attach debugger */
78  UCS_HANDLE_ERROR_LAST
79 } ucs_handle_error_t;
80 
81 
85 typedef enum {
86  UCS_CONFIG_PRINT_CONFIG = UCS_BIT(0),
87  UCS_CONFIG_PRINT_HEADER = UCS_BIT(1),
88  UCS_CONFIG_PRINT_DOC = UCS_BIT(2),
89  UCS_CONFIG_PRINT_HIDDEN = UCS_BIT(3)
90 } ucs_config_print_flags_t;
91 
92 
97 #define UCS_CONFIG_ARRAY_FIELD(_type, _array_name) \
98  struct { \
99  _type *_array_name; \
100  unsigned count; \
101  unsigned pad; \
102  }
103 
104 
105 /* Specific structure for an array of strings */
106 #define UCS_CONFIG_STRING_ARRAY_FIELD(_array_name) \
107  UCS_CONFIG_ARRAY_FIELD(char*, _array_name)
108 
109 
110 typedef UCS_CONFIG_STRING_ARRAY_FIELD(names) ucs_config_names_array_t;
111 
116 typedef struct ucs_sock_addr {
117  const struct sockaddr *addr;
118  socklen_t addrlen;
120 
121 #endif /* TYPES_H_ */
struct ucs_sock_addr ucs_sock_addr_t
const struct sockaddr * addr
Definition: types.h:117
socklen_t addrlen
Definition: types.h:118
Definition: types.h:116