From: Yu Watanabe Date: Tue, 28 Aug 2018 06:59:08 +0000 (+0900) Subject: sd-device: introduce device_enumerator_get_devices() X-Git-Tag: v240~721^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=708474c5a06f590748cf37392b9eef803740719b;p=thirdparty%2Fsystemd.git sd-device: introduce device_enumerator_get_devices() --- diff --git a/src/libsystemd/sd-device/device-enumerator-private.h b/src/libsystemd/sd-device/device-enumerator-private.h index 56a953d33b0..87411bfdd80 100644 --- a/src/libsystemd/sd-device/device-enumerator-private.h +++ b/src/libsystemd/sd-device/device-enumerator-private.h @@ -9,6 +9,7 @@ int device_enumerator_add_device(sd_device_enumerator *enumerator, sd_device *de int device_enumerator_add_match_is_initialized(sd_device_enumerator *enumerator); sd_device *device_enumerator_get_first(sd_device_enumerator *enumerator); sd_device *device_enumerator_get_next(sd_device_enumerator *enumerator); +sd_device **device_enumerator_get_devices(sd_device_enumerator *enumerator, size_t *ret_n_devices); #define FOREACH_DEVICE_AND_SUBSYSTEM(enumerator, device) \ for (device = device_enumerator_get_first(enumerator); \ diff --git a/src/libsystemd/sd-device/device-enumerator.c b/src/libsystemd/sd-device/device-enumerator.c index 509b72256a2..3f7ead268e0 100644 --- a/src/libsystemd/sd-device/device-enumerator.c +++ b/src/libsystemd/sd-device/device-enumerator.c @@ -973,3 +973,14 @@ sd_device *device_enumerator_get_next(sd_device_enumerator *enumerator) { return enumerator->devices[++enumerator->current_device_index]; } + +sd_device **device_enumerator_get_devices(sd_device_enumerator *enumerator, size_t *ret_n_devices) { + assert(enumerator); + assert(ret_n_devices); + + if (!enumerator->scan_uptodate) + return NULL; + + *ret_n_devices = enumerator->n_devices; + return enumerator->devices; +}