a1eb486 |
Jakob Wakeling |
2023-12-27 13:01:35 |
0
|
// Copyright (C) 2023, Jakob Wakeling |
a1eb486 |
Jakob Wakeling |
2023-12-27 13:01:35 |
1
|
// All rights reserved. |
a1eb486 |
Jakob Wakeling |
2023-12-27 13:01:35 |
2
|
|
8344335 |
Jakob Wakeling |
2023-12-27 15:41:39 |
3
|
#ifndef ESH_UTIL_LOG_H_MNZFBC4G |
8344335 |
Jakob Wakeling |
2023-12-27 15:41:39 |
4
|
#define ESH_UTIL_LOG_H_MNZFBC4G |
a1eb486 |
Jakob Wakeling |
2023-12-27 13:01:35 |
5
|
|
a1eb486 |
Jakob Wakeling |
2023-12-27 13:01:35 |
6
|
#define log_warn(format, ...) do { \ |
a1eb486 |
Jakob Wakeling |
2023-12-27 13:01:35 |
7
|
log_print(format __VA_OPT__(,) __VA_ARGS__); \ |
a1eb486 |
Jakob Wakeling |
2023-12-27 13:01:35 |
8
|
__warned = true; \ |
a1eb486 |
Jakob Wakeling |
2023-12-27 13:01:35 |
9
|
} while (0) |
a1eb486 |
Jakob Wakeling |
2023-12-27 13:01:35 |
10
|
|
a1eb486 |
Jakob Wakeling |
2023-12-27 13:01:35 |
11
|
extern bool __debug, __warned; |
a1eb486 |
Jakob Wakeling |
2023-12-27 13:01:35 |
12
|
|
a1eb486 |
Jakob Wakeling |
2023-12-27 13:01:35 |
13
|
[[noreturn]] extern void log_abort(const char *restrict format, ...); |
a1eb486 |
Jakob Wakeling |
2023-12-27 13:01:35 |
14
|
[[noreturn]] extern void log_fatal(int status, const char *restrict format, ...); |
a1eb486 |
Jakob Wakeling |
2023-12-27 13:01:35 |
15
|
extern void log_print(const char *restrict format, ...); |
a1eb486 |
Jakob Wakeling |
2023-12-27 13:01:35 |
16
|
extern void log_debug(const char *restrict format, ...); |
a1eb486 |
Jakob Wakeling |
2023-12-27 13:01:35 |
17
|
|
8344335 |
Jakob Wakeling |
2023-12-27 15:41:39 |
18
|
#endif // ESH_UTIL_LOG_H_MNZFBC4G |
|
|
|
19
|
|