btrfs: Attempt to fix GCC2 build.
[haiku.git] / src / add-ons / kernel / network / protocols / unix / UnixDebug.h
blobf35c50cfb00439ae9f8d0574f4bc101c3913065f
1 /*
2 * Copyright 2008, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5 #ifndef UNIX_DEBUG_H
6 #define UNIX_DEBUG_H
9 #include <Drivers.h>
12 //#define UNIX_DEBUG_PRINT dprintf
13 #define UNIX_DEBUG_PRINT ktrace_printf
15 #if UNIX_DEBUG_LEVEL
16 # define TRACE(args...) UNIX_DEBUG_PRINT(args)
17 # define PRINT_ERROR(error) \
18 do { \
19 UNIX_DEBUG_PRINT("[%ld] l. %d: %s: %s\n", \
20 find_thread(NULL), __LINE__, __PRETTY_FUNCTION__, \
21 strerror(error)); \
22 } while (false)
23 # if UNIX_DEBUG_LEVEL >= 2
24 # define REPORT_ERROR(error) PRINT_ERROR(error)
25 # define RETURN_ERROR(error) \
26 do { \
27 __typeof(error) error_RETURN_ERROR = (error); \
28 PRINT_ERROR(error_RETURN_ERROR); \
29 return error_RETURN_ERROR; \
30 } while (false)
31 # else
32 # define REPORT_ERROR(error) \
33 do { \
34 __typeof(error) error_REPORT_ERROR = (error); \
35 if (error_REPORT_ERROR < 0) \
36 PRINT_ERROR(error_REPORT_ERROR); \
37 } while (false)
38 # define RETURN_ERROR(error) \
39 do { \
40 __typeof(error) error_RETURN_ERROR = (error); \
41 if (error_RETURN_ERROR < 0) \
42 PRINT_ERROR(error_RETURN_ERROR); \
43 return error_RETURN_ERROR; \
44 } while (false)
45 # endif
46 #else
47 # define TRACE(args...) do {} while (false)
48 # define REPORT_ERROR(error)
49 # define RETURN_ERROR(error) return (error)
50 #endif
53 #endif // UNIX_DEBUG_H