18#define EC_INIT int ret = 0
19#define EC_STATUS(a) ret = (a)
20#define EC_EXIT_STATUS(a) do { ret = (a); goto cleanup; } while (0)
21#define EC_FAIL do { ret = -1; goto cleanup; } while (0)
22#define EC_FAIL_LOG(...) \
24 LOG(log_error, logtype_default, __VA_ARGS__); \
28#define EC_CLEANUP cleanup
29#define EC_EXIT return ret
61#define EC_ZERO_LOG(a) \
64 LOG(log_error, logtype_default, "%s failed: %s", #a, strerror(errno)); \
70#define EC_ZERO_LOGSTR(a, b, ...) \
73 LOG(log_error, logtype_default, b, __VA_ARGS__); \
79#define EC_ZERO_LOG_ERR(a, b) \
82 LOG(log_error, logtype_default, "%s failed: %s", #a, strerror(errno)); \
96#define EC_ZERO_ERR(a,b ) \
105#define EC_NEG1_LOG(a) \
108 LOG(log_error, logtype_default, "%s failed: %s", #a, strerror(errno)); \
114#define EC_NEG1_LOGSTR(a, b, ...) \
117 LOG(log_error, logtype_default, b, __VA_ARGS__); \
123#define EC_NEG1_LOG_ERR(a, b) \
126 LOG(log_error, logtype_default, "%s failed: %s", #a, strerror(errno)); \
141#define EC_NULL_LOG(a) \
144 LOG(log_error, logtype_default, "%s failed: %s", #a, strerror(errno)); \
150#define EC_NULL_LOGSTR(a, b, ...) \
153 LOG(log_error, logtype_default, b , __VA_ARGS__); \
159#define EC_NULL_LOG_ERR(a, b) \
162 LOG(log_error, logtype_default, "%s failed: %s", #a, strerror(errno)); \