6 #define BASIC_ERR_CHECK(expr,op,cond,fmt,last) \
9 if((res = (expr)) op cond) { \
10 fprintf(stderr, "%s(%d): %d = %s(%d): ", \
11 __FILE__, __LINE__, res, #expr, cond); \
13 fprintf(stderr, "\n"); \
18 #define BASIC_ERRNO_CHECK(expr,op,cond,last) \
20 int _basic_errno_check_res = (expr); \
21 if(_basic_errno_check_res op cond) { \
22 fprintf(stderr, "%s(%d): %d = %s(%d): %s\n", \
23 __FILE__, __LINE__, _basic_errno_check_res, #expr, cond, strerror(errno)); \
28 #define ERR_CHECK_RETURN(expr, op, cond, fmt, retval) \
29 BASIC_ERR_CHECK(expr, op, cond, fmt, return retval)
31 #define ERRNO_CHECK_RETURN(expr, op, cond, retval) \
32 BASIC_ERRNO_CHECK(expr, op, cond, return retval)
34 #define ERR_CHECK_RETURN_VOID(expr, op, cond, fmt) \
35 BASIC_ERR_CHECK(expr, op, cond, fmt, return)
37 #define ERRNO_CHECK_RETURN_VOID(expr, op, cond) \
38 BASIC_ERRNO_CHECK(expr, op, cond, return)
40 #define ERR_CHECK(expr, op, cond, fmt) \
41 BASIC_ERR_CHECK(expr, op, cond, fmt, (void) 0)
43 #define ERRNO_CHECK(expr, op, cond) \
44 BASIC_ERRNO_CHECK(expr, op, cond, (void) 0)
46 #endif /* _FIRMNET_T_H_ */