]>
Commit | Line | Data |
---|---|---|
e67ae9f5 YW |
1 | /* SPDX-License-Identifier: LGPL-2.1+ */ |
2 | #pragma once | |
3 | ||
4 | #include "log.h" | |
5 | ||
6 | /* | |
7 | * The following macros append INTERFACE= to the message. | |
8 | * The macros require a struct named 'Link' which contains 'char *ifname': | |
9 | * | |
10 | * typedef struct Link { | |
11 | * char *ifname; | |
12 | * } Link; | |
13 | * | |
14 | * See, network/networkd-link.h for example. | |
15 | */ | |
16 | ||
17 | #define log_link_full(link, level, error, ...) \ | |
18 | ({ \ | |
19 | const Link *_l = (link); \ | |
20 | (_l && _l->ifname) ? log_object_internal(level, error, __FILE__, __LINE__, __func__, "INTERFACE=", _l->ifname, NULL, NULL, ##__VA_ARGS__) : \ | |
21 | log_internal(level, error, __FILE__, __LINE__, __func__, ##__VA_ARGS__); \ | |
22 | }) \ | |
23 | ||
24 | #define log_link_debug(link, ...) log_link_full(link, LOG_DEBUG, 0, ##__VA_ARGS__) | |
25 | #define log_link_info(link, ...) log_link_full(link, LOG_INFO, 0, ##__VA_ARGS__) | |
26 | #define log_link_notice(link, ...) log_link_full(link, LOG_NOTICE, 0, ##__VA_ARGS__) | |
27 | #define log_link_warning(link, ...) log_link_full(link, LOG_WARNING, 0, ##__VA_ARGS__) | |
28 | #define log_link_error(link, ...) log_link_full(link, LOG_ERR, 0, ##__VA_ARGS__) | |
29 | ||
30 | #define log_link_debug_errno(link, error, ...) log_link_full(link, LOG_DEBUG, error, ##__VA_ARGS__) | |
31 | #define log_link_info_errno(link, error, ...) log_link_full(link, LOG_INFO, error, ##__VA_ARGS__) | |
32 | #define log_link_notice_errno(link, error, ...) log_link_full(link, LOG_NOTICE, error, ##__VA_ARGS__) | |
33 | #define log_link_warning_errno(link, error, ...) log_link_full(link, LOG_WARNING, error, ##__VA_ARGS__) | |
34 | #define log_link_error_errno(link, error, ...) log_link_full(link, LOG_ERR, error, ##__VA_ARGS__) | |
35 | ||
36 | #define LOG_LINK_MESSAGE(link, fmt, ...) "MESSAGE=%s: " fmt, (link)->ifname, ##__VA_ARGS__ | |
37 | #define LOG_LINK_INTERFACE(link) "INTERFACE=%s", (link)->ifname |