Lines Matching refs:udev_enumerate
48 * udev_enumerate:
52 struct udev_enumerate {
69 _public_ struct udev_enumerate *udev_enumerate_new(struct udev *udev) {
70 _cleanup_free_ struct udev_enumerate *udev_enumerate = NULL;
71 struct udev_enumerate *ret;
76 udev_enumerate = new0(struct udev_enumerate, 1);
77 if (!udev_enumerate) {
82 r = sd_device_enumerator_new(&udev_enumerate->enumerator);
88 r = sd_device_enumerator_allow_uninitialized(udev_enumerate->enumerator);
94 udev_enumerate->refcount = 1;
95 udev_enumerate->udev = udev;
97 udev_list_init(udev, &udev_enumerate->devices_list, false);
99 ret = udev_enumerate;
100 udev_enumerate = NULL;
107 * @udev_enumerate: context
113 _public_ struct udev_enumerate *udev_enumerate_ref(struct udev_enumerate *udev_enumerate) {
114 if (udev_enumerate)
115 udev_enumerate->refcount ++;
117 return udev_enumerate;
122 * @udev_enumerate: context
129 _public_ struct udev_enumerate *udev_enumerate_unref(struct udev_enumerate *udev_enumerate) {
130 if (udev_enumerate && (-- udev_enumerate->refcount) == 0) {
131 udev_list_cleanup(&udev_enumerate->devices_list);
132 sd_device_enumerator_unref(udev_enumerate->enumerator);
133 free(udev_enumerate);
141 * @udev_enumerate: context
147 _public_ struct udev *udev_enumerate_get_udev(struct udev_enumerate *udev_enumerate) {
148 assert_return_errno(udev_enumerate, NULL, EINVAL);
150 return udev_enumerate->udev;
155 * @udev_enumerate: context
161 _public_ struct udev_list_entry *udev_enumerate_get_list_entry(struct udev_enumerate *udev_enumerate) {
162 assert_return_errno(udev_enumerate, NULL, EINVAL);
164 if (!udev_enumerate->devices_uptodate) {
167 udev_list_cleanup(&udev_enumerate->devices_list);
169 FOREACH_DEVICE_AND_SUBSYSTEM(udev_enumerate->enumerator, device) {
179 udev_list_entry_add(&udev_enumerate->devices_list, syspath, NULL);
182 udev_enumerate->devices_uptodate = true;
185 return udev_list_get_entry(&udev_enumerate->devices_list);
190 * @udev_enumerate: context
197 _public_ int udev_enumerate_add_match_subsystem(struct udev_enumerate *udev_enumerate, const char *subsystem) {
198 assert_return(udev_enumerate, -EINVAL);
203 return sd_device_enumerator_add_match_subsystem(udev_enumerate->enumerator, subsystem, true);
208 * @udev_enumerate: context
215 _public_ int udev_enumerate_add_nomatch_subsystem(struct udev_enumerate *udev_enumerate, const char *subsystem) {
216 assert_return(udev_enumerate, -EINVAL);
221 return sd_device_enumerator_add_match_subsystem(udev_enumerate->enumerator, subsystem, false);
226 * @udev_enumerate: context
234 _public_ int udev_enumerate_add_match_sysattr(struct udev_enumerate *udev_enumerate, const char *sysattr, const char *value) {
235 assert_return(udev_enumerate, -EINVAL);
240 return sd_device_enumerator_add_match_sysattr(udev_enumerate->enumerator, sysattr, value, true);
245 * @udev_enumerate: context
253 _public_ int udev_enumerate_add_nomatch_sysattr(struct udev_enumerate *udev_enumerate, const char *sysattr, const char *value) {
254 assert_return(udev_enumerate, -EINVAL);
259 return sd_device_enumerator_add_match_sysattr(udev_enumerate->enumerator, sysattr, value, false);
264 * @udev_enumerate: context
272 _public_ int udev_enumerate_add_match_property(struct udev_enumerate *udev_enumerate, const char *property, const char *value) {
273 assert_return(udev_enumerate, -EINVAL);
278 return sd_device_enumerator_add_match_property(udev_enumerate->enumerator, property, value);
283 * @udev_enumerate: context
290 _public_ int udev_enumerate_add_match_tag(struct udev_enumerate *udev_enumerate, const char *tag) {
291 assert_return(udev_enumerate, -EINVAL);
296 return sd_device_enumerator_add_match_tag(udev_enumerate->enumerator, tag);
301 * @udev_enumerate: context
307 * A reference for the device is held until the udev_enumerate context
312 _public_ int udev_enumerate_add_match_parent(struct udev_enumerate *udev_enumerate, struct udev_device *parent) {
313 assert_return(udev_enumerate, -EINVAL);
318 return sd_device_enumerator_add_match_parent(udev_enumerate->enumerator, parent->device);
323 * @udev_enumerate: context
339 _public_ int udev_enumerate_add_match_is_initialized(struct udev_enumerate *udev_enumerate) {
340 assert_return(udev_enumerate, -EINVAL);
342 return device_enumerator_add_match_is_initialized(udev_enumerate->enumerator);
347 * @udev_enumerate: context
354 _public_ int udev_enumerate_add_match_sysname(struct udev_enumerate *udev_enumerate, const char *sysname) {
355 assert_return(udev_enumerate, -EINVAL);
360 return sd_device_enumerator_add_match_sysname(udev_enumerate->enumerator, sysname);
365 * @udev_enumerate: context
372 _public_ int udev_enumerate_add_syspath(struct udev_enumerate *udev_enumerate, const char *syspath) {
376 assert_return(udev_enumerate, -EINVAL);
385 r = device_enumerator_add_device(udev_enumerate->enumerator, device);
394 * @udev_enumerate: udev enumeration context
401 _public_ int udev_enumerate_scan_devices(struct udev_enumerate *udev_enumerate) {
402 assert_return(udev_enumerate, -EINVAL);
404 return device_enumerator_scan_devices(udev_enumerate->enumerator);
409 * @udev_enumerate: udev enumeration context
415 _public_ int udev_enumerate_scan_subsystems(struct udev_enumerate *udev_enumerate) {
416 assert_return(udev_enumerate, -EINVAL);
418 return device_enumerator_scan_subsystems(udev_enumerate->enumerator);