X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibelogind%2Fsd-device%2Fdevice-util.h;h=9b05a2498daf0272d6460b9f508a27f3fe03ab15;hb=d2febf7f92eba0919773ce93d80df50fd3faeb5d;hp=bfbb3284a8625a13d2244d75694d4c2f3d8e4fda;hpb=f48dd74a8d39b6074f820f904953f5cece03b9b0;p=elogind.git diff --git a/src/libelogind/sd-device/device-util.h b/src/libelogind/sd-device/device-util.h index bfbb3284a..9b05a2498 100644 --- a/src/libelogind/sd-device/device-util.h +++ b/src/libelogind/sd-device/device-util.h @@ -5,7 +5,7 @@ /*** This file is part of systemd. - Copyright 2014 Tom Gundersen + Copyright 2014-2015 Tom Gundersen systemd is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -24,9 +24,11 @@ #include "util.h" DEFINE_TRIVIAL_CLEANUP_FUNC(sd_device*, sd_device_unref); - #define _cleanup_device_unref_ _cleanup_(sd_device_unrefp) +DEFINE_TRIVIAL_CLEANUP_FUNC(sd_device_enumerator*, sd_device_enumerator_unref); +#define _cleanup_device_enumerator_unref_ _cleanup_(sd_device_enumerator_unrefp) + #define FOREACH_DEVICE_PROPERTY(device, key, value) \ for (key = sd_device_get_property_first(device, &(value)); \ key; \ @@ -46,3 +48,13 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(sd_device*, sd_device_unref); for (devlink = sd_device_get_devlink_first(device); \ devlink; \ devlink = sd_device_get_devlink_next(device)) + +#define FOREACH_DEVICE(enumerator, device) \ + for (device = sd_device_enumerator_get_device_first(enumerator); \ + device; \ + device = sd_device_enumerator_get_device_next(enumerator)) + +#define FOREACH_SUBSYSTEM(enumerator, device) \ + for (device = sd_device_enumerator_get_subsystem_first(enumerator); \ + device; \ + device = sd_device_enumerator_get_subsystem_next(enumerator))