]>
Commit | Line | Data |
---|---|---|
db9ecf05 | 1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
57fa1d09 TG |
2 | #pragma once |
3 | ||
57fa1d09 TG |
4 | #define FOREACH_DEVICE_PROPERTY(device, key, value) \ |
5 | for (key = sd_device_get_property_first(device, &(value)); \ | |
6 | key; \ | |
7 | key = sd_device_get_property_next(device, &(value))) | |
8 | ||
9 | #define FOREACH_DEVICE_TAG(device, tag) \ | |
10 | for (tag = sd_device_get_tag_first(device); \ | |
11 | tag; \ | |
12 | tag = sd_device_get_tag_next(device)) | |
13 | ||
e77b146f LP |
14 | #define FOREACH_DEVICE_CURRENT_TAG(device, tag) \ |
15 | for (tag = sd_device_get_current_tag_first(device); \ | |
16 | tag; \ | |
17 | tag = sd_device_get_current_tag_next(device)) | |
18 | ||
57fa1d09 TG |
19 | #define FOREACH_DEVICE_SYSATTR(device, attr) \ |
20 | for (attr = sd_device_get_sysattr_first(device); \ | |
21 | attr; \ | |
22 | attr = sd_device_get_sysattr_next(device)) | |
23 | ||
24 | #define FOREACH_DEVICE_DEVLINK(device, devlink) \ | |
25 | for (devlink = sd_device_get_devlink_first(device); \ | |
26 | devlink; \ | |
27 | devlink = sd_device_get_devlink_next(device)) | |
96df036f TG |
28 | |
29 | #define FOREACH_DEVICE(enumerator, device) \ | |
30 | for (device = sd_device_enumerator_get_device_first(enumerator); \ | |
31 | device; \ | |
32 | device = sd_device_enumerator_get_device_next(enumerator)) | |
33 | ||
34 | #define FOREACH_SUBSYSTEM(enumerator, device) \ | |
35 | for (device = sd_device_enumerator_get_subsystem_first(enumerator); \ | |
36 | device; \ | |
37 | device = sd_device_enumerator_get_subsystem_next(enumerator)) | |
b0cba0ca | 38 | |
ab54f12b | 39 | #define log_device_full_errno(device, level, error, ...) \ |
b0cba0ca | 40 | ({ \ |
38d1555d | 41 | const char *_sysname = NULL; \ |
b0cba0ca YW |
42 | sd_device *_d = (device); \ |
43 | int _level = (level), _error = (error); \ | |
44 | \ | |
46d4149d | 45 | if (_d && _unlikely_(log_get_max_level() >= LOG_PRI(_level))) \ |
b0cba0ca | 46 | (void) sd_device_get_sysname(_d, &_sysname); \ |
62c6bbbc | 47 | log_object_internal(_level, _error, PROJECT_FILE, __LINE__, __func__, \ |
b0cba0ca | 48 | _sysname ? "DEVICE=" : NULL, _sysname, \ |
ab54f12b | 49 | NULL, NULL, __VA_ARGS__); \ |
b0cba0ca YW |
50 | }) |
51 | ||
ab54f12b YW |
52 | #define log_device_full(device, level, ...) (void) log_device_full_errno(device, level, 0, __VA_ARGS__) |
53 | ||
54 | #define log_device_debug(device, ...) log_device_full_errno(device, LOG_DEBUG, 0, __VA_ARGS__) | |
55 | #define log_device_info(device, ...) log_device_full(device, LOG_INFO, __VA_ARGS__) | |
56 | #define log_device_notice(device, ...) log_device_full(device, LOG_NOTICE, __VA_ARGS__) | |
57 | #define log_device_warning(device, ...) log_device_full(device, LOG_WARNING, __VA_ARGS__) | |
58 | #define log_device_error(device, ...) log_device_full(device, LOG_ERR, __VA_ARGS__) | |
59 | ||
60 | #define log_device_debug_errno(device, error, ...) log_device_full_errno(device, LOG_DEBUG, error, __VA_ARGS__) | |
61 | #define log_device_info_errno(device, error, ...) log_device_full_errno(device, LOG_INFO, error, __VA_ARGS__) | |
62 | #define log_device_notice_errno(device, error, ...) log_device_full_errno(device, LOG_NOTICE, error, __VA_ARGS__) | |
63 | #define log_device_warning_errno(device, error, ...) log_device_full_errno(device, LOG_WARNING, error, __VA_ARGS__) | |
64 | #define log_device_error_errno(device, error, ...) log_device_full_errno(device, LOG_ERR, error, __VA_ARGS__) |